Arraylist 或 List 中的 Java 对象
Posted
技术标签:
【中文标题】Arraylist 或 List 中的 Java 对象【英文标题】:Java object in Arraylist or List 【发布时间】:2015-07-30 22:20:37 【问题描述】:我想知道如何将我的对象ObjetTWS
与我的函数ObjectTWS()
的参数一起使用。以及如何将对象放入Arraylist
或List
。
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
undefined :
ObjetTWS obj = new ObjetTWS();
obj.nom = p_nom;
obj.jobAmont.add(p_jobAmont);
obj.jobAval.add(p_jobAval);
obj.type = p_type;
【问题讨论】:
您是否在某处初始化列表? 是的,但问题出在我创建的对象上。此行的错误 ObjetTWS obj = new ObjetTWS() is constructor ObjetTWS is undefined. @Subas,属性(除非是特殊情况)应该都是私有的,并且访问它们的方式应该始终使用 getter 和 setter 方法。记住它。 【参考方案1】:你已经定义了一个构造函数:
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);
【讨论】:
【参考方案2】:首先你应该初始化列表
public class ObjetTWS
String nom;
List<String> jobAmont = new ArrayList<String> ();
List<String> jobAval = new ArrayList<String> ();
String type;
然后你尝试向其中添加元素。
并尽量保留你的默认构造函数
当您通过参数构造函数覆盖它时
public ObjectTWS()
【讨论】:
抱歉,当您发表评论时,我正在回答我的问题 :)【参考方案3】:默认情况下,对象有一个无参数构造函数(这是您在第二个代码 sn-p 中调用的构造函数)。但是,当您提供其他构造函数时,它会替换,这就是您在第一个示例中所做的。
要解决这个问题,你有两个选择:
在ObjetTWS
类中添加无参数构造函数:public ObjeTWS() //Do any initialization here
在您的第二个代码示例中,使用以下代码:ObjetTWS obj = new ObjetTWS(p_nom, p_type, p_jobAmont, p_jobAval);
【讨论】:
【参考方案4】:由于您在类中创建了自己的带参数构造函数,因此默认构造函数根本不起作用,因此您必须使用构造函数传递参数,并在向其添加元素之前初始化 List。
【讨论】:
【参考方案5】:public ObjetTWS(String p_nom, String p_type,String p_jobAmont,String p_jobAval)
你这里有一个参数化的构造函数。但是在代码中你试图这样做ObjetTWS obj = new ObjetTWS();
它告诉我们的是你没有没有参数的构造函数。
因此,为了能够做到这一点,您需要向您的类添加另一个构造函数,它应该如下所示:
public ObjectTWS()
// Any code logic
【讨论】:
以上是关于Arraylist 或 List 中的 Java 对象的主要内容,如果未能解决你的问题,请参考以下文章
Java中的代码 import java.util.ArrayList; ArrayList list=new ArrayList(); 引用错误啊