Java 无法添加到类集合框架中的列表
新的集合和尝试下面的代码,我得到以下奖励: 线程“main”java.lang.NullPointerException中出现异常 位于org.first.collectionsframework.CollectionsFirsttest.addCountytolist 位于org.first.collectionsframework.CFTmain.main(CFTmain.java:16) 我的课程如下所示,有人能指出我做错了什么吗 第一:收集第一次测试 第二名:CFTmainJava 无法添加到类集合框架中的列表,java,collections,Java,Collections,新的集合和尝试下面的代码,我得到以下奖励: 线程“main”java.lang.NullPointerException中出现异常 位于org.first.collectionsframework.CollectionsFirsttest.addCountytolist 位于org.first.collectionsframework.CFTmain.main(CFTmain.java:16) 我的课程如下所示,有人能指出我做错了什么吗 第一:收集第一次测试 第二名:CFTmain public
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());
}
}
}
公共类CollectionsFirsttest{
字符串名;
国际雇员ID;
字符串城市;
列名县;
/*建造师*/
公共集合首次测试(){
}
公共字符串getName(){
返回名称;
}
公共void集合名(字符串名){
this.name=名称;
}
public int getEmployeeID(){
返回员工ID;
}
public void setEmployeeID(int employeeID){
this.employeeID=employeeID;
}
公共字符串getCity(){
回归城市;
}
公共城市(字符串城市){
this.city=城市;
}
public void addCountytolist(字符串x)
{
本.县.加(x);
System.out.println(“添加的县为:+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());
}
}
}
公共类CFTmain{
公共静态void main(字符串[]args)
{
CollectionsFirsttest CFTobject1=新的CollectionsFirsttest();
CollectionsFirsttest CFTobject2=新的CollectionsFirsttest();
List objlist=new ArrayList();
CFTobject1.setName(“虚拟”);
CFTobject1.setEmployeeID(001);
CFTobject1.赛特城(“仙境”);
CFTobject1.添加计数列表(“cvs1”);
CFTobject1.添加计数列表(“cvs2”);
CFTobject1.添加CountyToList(“cvs3”);
CFTobject2.设定名称(“Pumkin”);
CFTobject2.setEmployeeID(002);
CFTobject2.赛特城(“仙境”);
CFTobject2.添加计数列表(“mtv1”);
CFTobject2.添加CountyToList(“mtv2”);
CFTobject2.addCountytolist(“mtv3”);
对象列表添加(CFTobject1);
对象列表添加(CFTobject2);
显示(对象列表);
}
公共静态无效显示(列表l)
{
System.out.println(“列表中的值:“+System.identityHashCode(l));
用于(对象d:l)
{
System.out.println(“第一个对象中的值是”+System.identityHashCode(d));
System.out.println(“在“+d.getClass()中的名称”);
}
}
}
对一些人来说,我的错误可能很简单,但因为我是新来的,希望它会把我吃掉。
我在尝试将county输入列表时就遇到了错误。CFTobject1.添加计数列表(“cvs1”) 您从未初始化该列表。您只声明了引用。您需要在某处创建一个
新的ArrayList()
,并将其分配给县。您需要初始化存储县的列表。这样做的一个好地方是类的构造函数。
如果你不熟悉钻石操作员,你可以写
county = new ArrayList<String>();
county=newarraylist();
否则就是
county = new ArrayList<>();
county=newarraylist();
您还应该考虑将private final
添加到列表
声明中。在开始使用对象之前,您需要使用对象的构造函数初始化对象所需的所有内容。具体来说,这里您应该初始化“county”:
公共类CollectionsFirsttest{
列名县;
...
公共集合首次测试(){
county=新的ArrayList();
...
@SotiriosDelimanolis这个问题每天解决100个问题:)谢谢你的回复,得到了答案。
public class CollectionsFirsttest {
List<String> county;
...
public CollectionsFirsttest(){
county = new ArrayList<String>();
...