从另一个类向ArrayList添加对象

时间:2015-04-25 23:41:44

标签: java arraylist nullpointerexception inner-classes

我正在尝试从另一个文件向ArrayList添加对象,但即使我初始化了ArrayList,我也得到java.lang.NullPointerException。这是一个代码示例,其中包含我正在讨论的结构。

//ObjectOne.java

import java.util.ArrayList;

public class ObjectOne {   

    public InnerClass inner;

   class InnerClass {

       ArrayList<String> list = new ArrayList<String>();

       public void addString(String str) {
           list.add(str);
       }

   }

   public void addStr(String str) {
       inner.list.add(str);
   }


}

这是第二个文件:

//ObjectTwo.java
public class ObjectTwo {

    public static void main(String args[]) {
        ObjectOne obj = new ObjectOne();
        obj.addStr("Test string added");
    }

}

我在InnerClass中初始化了ArrayList,但是当我尝试在另一个java文件中添加一个项目时,我得到了一个NullPointerException。我有这个文件结构的原因是因为我正在使用GSON。为什么ArrayList list表现得好像它从未被初始化?我的目标是能够从不同的java文件中将对象添加到列表中。

1 个答案:

答案 0 :(得分:1)

您没有在父类中创建内部类的实例,只为它创建了一个引用。

public InnerClass inner = new InnerClass(); // add the new here