繁体   English   中英

Arraylist或List中的Java对象

[英]Java object in Arraylist or List

我想知道如何将我的对象ObjetTWS与我的函数ObjectTWS()的参数一起使用。 以及如何将对象放在ArraylistList

public class ObjetTWS {

    String nom; 
    List<String> jobAmont; 
    List<String> jobAval; 
    String type;


    public ObjetTWS(String p_nom, String p_type,String p_jobAmont,String p_jobAval){

我已经尝试了这个,但它说ObjetTWS未定义:

ObjetTWS obj  = new ObjetTWS();

obj.nom = p_nom;
obj.jobAmont.add(p_jobAmont);
obj.jobAval.add(p_jobAval);
obj.type = p_type;

您已经定义了一个构造函数:

public ObjetTWS(String p_nom, String p_type,String p_jobAmont,String p_jobAval){

这使得JVM省略了默认构造函数,因此您必须手动添加它

public ObjetTWS() {}

或使用给定的构造函数声明对象:

ObjetTWS obj = new ObjetTWS(p_nom, p_type,p_jobAmont, p_jobAval);

由于您已使用参数在类中创建了自己的构造函数,因此默认构造函数根本不起作用,因此您必须使用构造函数传递参数,并在向元素添加元素之前初始化List。

首先,您应该初始化列表

public class ObjetTWS {   
    String nom; 
    List<String> jobAmont = new ArrayList<String> (); 
    List<String> jobAval =  new ArrayList<String> (); 
    String type;

然后尝试在其中添加元素。

并且还尝试保留默认构造函数

当你通过参数构造函数覆盖它时

public ObjectTWS() {}

默认情况下,对象具有参数less constructor(这是您在第二个代码段中调用的那个)。 但是,当您提供它们时,它会其他构造函数替换 ,这正是您在第一个示例中所做的。

要解决这个问题,您有两个选择:

  1. ObjetTWS类中添加一个参数less constructor: public ObjeTWS() {} //Do any initialization here

  2. 在第二个代码示例中,使用: ObjetTWS obj = new ObjetTWS(p_nom, p_type, p_jobAmont, p_jobAval);

public ObjetTWS(String p_nom, String p_type,String p_jobAmont,String p_jobAval)这里有一个参数化构造函数。 但是在代码中你试图这样做ObjetTWS obj = new ObjetTWS();

它告诉我们的是你没有没有参数的构造函数。

所以,为了能够做到这一点,你需要在你的类中添加另一个构造函数,它应该如下所示:

public ObjectTWS() {
    // Any code logic
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM