无法在类集合框架中添加到列表中

时间:2014-03-18 18:23:30

标签: java collections

收藏新手并尝试下面的代码,我得到以下的删除:

  

线程“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”);

3 个答案:

答案 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>();
    ...