首先访问静态arraylist

时间:2013-11-08 18:28:46

标签: java arraylist

我有一个静态ArrayList:

    public class Global {
    public static ArrayList<Player> Round;
}

据我所知,没有实例化静态数组,所以我第一次访问ArrayList是:

    Player lPlayer = new Player(name,level);
    Global.Round.add(lPlayer);

它崩溃了应用程序。我相当确信lPlayer是否正确形成。添加新玩家时会调用此行,所以我永远不知道这是否是我第一次调用.add,但这不重要,对吧?

错误是“InvocationTargetException。(Throwable)line:50”。

关于什么是错的任何想法?

感谢。

3 个答案:

答案 0 :(得分:3)

读取异常堆栈跟踪的其余部分,您可能会发现异常的原因是NullPointerException。

在您实例化ArrayList之前,它不存在,就像任何对象一样。它是否静止不会改变任何东西。

答案 1 :(得分:1)

你必须像下面这样初始化Round对象。否则你会得到NUllPointerException

public class Global {
    public static ArrayList<Player> Round = new ArrayList<>();
}

答案 2 :(得分:1)

你在说:

  

一个不实例化静态数组,

你在哪里找到它?

您需要实例化staticnon-static的实例字段。只有它们之间的区别在于:static字段与class相关联,而不是与任何object相关联。 class的每个实例都共享一个class变量,该变量位于内存中的一个固定位置

您尚未初始化ArrayList<Player> Round。所以创建它:

public static ArrayList<Player> Round = new ArrayList<>();