稍后定义变量(否则:NullPointerException)

Later Defining variable (else: NullPointerException)

我有一个 ArrayList,它在一个函数中定义,并在另一个函数中被调用。但是当我在开头添加 public ArrayList<String> list = new ArrayList<String>();,然后 运行 一个将项目添加到该列表的函数,然后尝试在另一个函数中调用 list 时,它会覆盖之前的集合,只是 returns 一个空列表。 但是当我一开始只有 public ArrayList<String> list; 时,再次在一个函数中添加项目然后尝试使用 list,它会抛出 NullPointerException。 我也试过在 onCreate 方法中使用 ArrayList<String> list = new ArrayList<String>();,但这也是一个 NPE。

所以一个函数就是

public void setList() {    
   for(int x=0; x<=5;x++){
      list.add(Integer.toString(x));
   }
}

Integer.toString(x)目前仅供测试) 另一个是

public void setList() {
   Log.d("Log",list.toString());
}

public class MainActivity extends FragmentActivity {之后的最开始 我试过了

public ArrayList<String> list; //this throws a NPE

public ArrayList<String> list = new ArrayList<String>(); //this overwrites the variable each time it's called

我该如何解决?

问题是我在set方法之后和调用get方法之前更改了显示的Fragment吗?

非常感谢

在代码顶部使用 1 个列表对象,不要在函数中创建新列表对象。它应该是这样的。

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

// onCreate....

public void addElement() {
   for(int x=0; x<=5;x++){
       list.add(Integer.toString(x));
   }
}

public void showElements() {
    Log.d("Log",list.toString());
}