创建大小为变量的数组

时间:2013-08-29 09:59:24

标签: java

我正在尝试以这种方式创建一个新数组:

final boolean[] arr = new boolean[list.size()];

在某些情况下,这一行在我的代码中抛出一个空指针。在什么情况下会发生这种情况?列表零元素时会发生吗?我确信此阶段的列表不为空。

7 个答案:

答案 0 :(得分:1)

抛出 NullPointerException 意味着您有一个未初始化的对象。它与其他任何事情无关。如果异常被抛出您提到的那一行,那么正如您问题的评论所说,您的列表尚未初始化。

使用动态长度创建数组(请注意,在初始化之后,数组大小不能更改),您可以这样做:

ArrayList<String> list = new ArrayList<String>();
//Add elements to your list
String[] arr = list.toArray(new String[list.size()]);

答案 1 :(得分:0)

boolean[] arr = new boolean[0];

即使它是有效的语法。你可以创建0大小的数组。因此,除非list null,否则它不会产生NullPointerException

答案 2 :(得分:0)

list为空时,如果它仅在该行上发生,则可以出现空点。如果这是您获得的例外情况,则listnull。再看看你的代码,我相信你会发现。或者,调试代码并在此行检查list的值。

答案 3 :(得分:0)

列表从未实例化过。所以,它是 null 。检查是否在声明后实例化了列表。

答案 4 :(得分:0)

如果listnull,则只会发生这种情况。 如果list为空,list.size()将返回0.

答案 5 :(得分:0)

请使用List而不是数组,最后从列表中获取数组..

答案 6 :(得分:0)

确保您初始化了列表变量。抛出NPE的唯一方法是由于列表本身为空。