Невозможно добавить в список в рамках коллекции классов

Новое в коллекциях и опробование кода ниже, я получаю следующее упражнение:

Исключение в потоке "main" java.lang.NullPointerException в org.first.collectionsframework.CollectionsFirsttest.addCountytolist в org.first.collectionsframework.CFTmain.main(CFTmain.java:16)

Мои классы приведены ниже, может ли кто-то указать на то, что я делаю неправильно:

1-й: КоллекцииFirsttest

2nd: 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);
}
}
</string>

2nd: 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()); }
}
} <p> Для некоторых людей моя ошибка может быть довольно простой, но поскольку я новичок, надеюсь, что она меня съест. Я запускаю ошибку, как только я пытаюсь ввести графство в Список. CFTobject1.addCountytolist( "cvs1");</p> </object></object></object>
3 ответа

Вы должны использовать конструктор объекта, чтобы инициализировать все, что нужно объекту, прежде чем вы начнете его использовать. В частности, здесь вы должны инициализировать "графство":

public class CollectionsFirsttest { List<string> county; ... public CollectionsFirsttest(){ county = new ArrayList<string>(); ...
</string></string>


Вам нужно инициализировать List который хранит округа. Хорошим местом для этого является конструктор класса. Если вы не знакомы с алмазным оператором, вы можете написать

county = new ArrayList<string>();
</string>

иначе это

county = new ArrayList<>();

Вы также должны подумать о добавлении private final в объявление List.


Вы никогда не инициализируете этот список. Вы только указали ссылку. Вам нужен new ArrayList<>() где-то и назначить это графству.

licensed under cc by-sa 3.0 with attribution.