我正在尝试以这种方式创建一个新数组:
final boolean[] arr = new boolean[list.size()];
在某些情况下,这一行在我的代码中抛出一个空指针。在什么情况下会发生这种情况?列表零元素时会发生吗?我确信此阶段的列表不为空。
答案 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
为空时,如果它仅在该行上发生,则可以出现空点。如果这是您获得的例外情况,则list
为null
。再看看你的代码,我相信你会发现。或者,调试代码并在此行检查list
的值。
答案 3 :(得分:0)
列表从未实例化过。所以,它是 null 。检查是否在声明后实例化了列表。
答案 4 :(得分:0)
如果list
为null
,则只会发生这种情况。
如果list
为空,list.size()
将返回0.
答案 5 :(得分:0)
请使用List而不是数组,最后从列表中获取数组..
答案 6 :(得分:0)
确保您初始化了列表变量。抛出NPE的唯一方法是由于列表本身为空。