收藏新手并尝试下面的代码,我得到以下的删除:
线程“main”java.lang.NullPointerException中的异常 在org.first.collectionsframework.CollectionsFirsttest.addCountytolist 在org.first.collectionsframework.CFTmain.main(CFTmain.java:16)
我的课程如下所示,有些人可以指出我做错了什么:
1st:CollectionsFirsttest
第二名:CFTmain
public class CollectionsFirsttest {
String name;
int employeeID;
String city;
List<String> county;
/* constructor*/
public CollectionsFirsttest(){
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getEmployeeID() {
return employeeID;
}
public void setEmployeeID(int employeeID) {
this.employeeID = employeeID;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public void addCountytolist(String x)
{
this.county.add(x);
System.out.println("County added is:" +x);
}
}
第二名:CFTmain
public class CFTmain {
public static void main(String[] args)
{
CollectionsFirsttest CFTobject1=new CollectionsFirsttest();
CollectionsFirsttest CFTobject2=new CollectionsFirsttest();
List<Object> objlist= new ArrayList<Object>();
CFTobject1.setName("Dummy");
CFTobject1.setEmployeeID(001);
CFTobject1.setCity("Wonderland");
CFTobject1.addCountytolist("cvs1");
CFTobject1.addCountytolist("cvs2");
CFTobject1.addCountytolist("cvs3");
CFTobject2.setName("Pumkin");
CFTobject2.setEmployeeID(002);
CFTobject2.setCity("Wonderland");
CFTobject2.addCountytolist("mtv1");
CFTobject2.addCountytolist("mtv2");
CFTobject2.addCountytolist("mtv3");
objlist.add(CFTobject1);
objlist.add(CFTobject2);
display(objlist);
}
public static void display(List<Object> l)
{
System.out.println(" The values in list:"+System.identityHashCode(l));
for (Object d: l)
{
System.out.println("the values in the first object is"+System.identityHashCode(d));
System.out.println ("The name in"+ d.getClass());
}
}
}
对某些人来说,我的错误可能很简单,但由于我是新人,所以希望它能让我吃饱。 我试图进入列表进入县时,我遇到了错误。 CFTobject1.addCountytolist( “CVS1”);
答案 0 :(得分:1)
您需要初始化存储县的List
。这样做的好地方是类的构造函数。
如果你不熟悉钻石操作员,你可以写一下
county = new ArrayList<String>();
否则它是
county = new ArrayList<>();
您还应考虑在private final
声明中添加List
。
答案 1 :(得分:0)
您永远不会初始化该列表。您只是声明了参考。你需要在某处new ArrayList<>()
并将其分配给县。
答案 2 :(得分:0)
在开始使用对象之前,您需要使用对象的构造函数初始化对象所需的所有内容。具体来说,在这里你应该初始化&#34; county&#34;:
public class CollectionsFirsttest {
List<String> county;
...
public CollectionsFirsttest(){
county = new ArrayList<String>();
...