将对象添加到数组列表。尝试添加obect时发生错误ArrayList

问题描述:

有人可以回答为什么我的数组列表有问题。我有一个类:List,PeopleMain(运行一切)。将对象添加到数组列表。尝试添加obect时发生错误ArrayList

List我正在创建一个新的ArrayList来保存People类型的对象。

Main我在制作新的List对象,然后创建新的People对象,然后调用List对象add方法,此时我得到nullPointerException异常。

public class Main { 
    public static void main(String[] args) { 

     List l = new List();  // making new List object 
     People p = new People(); // making new People object 

     l.addPeople(p);   // calling from List object "addPeople" method and 
    }    

       // parsing People object "p" 
} 




import java.util.ArrayList; 

public class List { 

     public List(){   //constructor 
    } 

     ArrayList<People>list;  // new ArrayList to hold objects of type "People" 

    public void addPeople(People people){ 
     list.add(people);    // I get error here 
    } 
} 

public class People { 

    public People(){   // constructor 
    } 
} 
+0

谢谢大家,我认为在构造函数中有问题就是无法理解的地方。现在,它的工作,再次感谢所有的时间。 – edi 2011-04-15 02:04:49

在构造函数中:

list = new ArrayList<People>(); 

您需要在您的list字段中输入ArrayList实例。

你没有实例在任何时间列表。在你的构造做到这一点:

public List(){   //constructor 
      list = new ArrayList<People>(); 
    } 

我不知道这是否是相关的,但它是一个坏主意来命名类“清单”,因为这将隐藏列表界面。

+0

这只是为了测试,在大型项目中我不会。 – edi 2011-04-15 02:07:22

+0

@Edgar你最好别这么做。你可以“获得”的唯一的事情是迷惑自己(以及你展示的人)并且必须重写它以用于“大计划”。 – maaartinus 2011-04-15 02:24:24