【发布时间】:2013-09-27 11:21:39
【问题描述】:
尽管有以下证据表明我的阵列确实存在,但我仍继续收到此 NPE: 使用这段代码,我引用了一个二维字符串数组,我随机选择一个元素,即两个子元素中的第一个:
do{
hold = (oneRay.length);
pick = random.nextInt(hold);
System.out.println("called(); has been called - oneRay.length =
" + oneRay.length + "oneRay[0].length " + oneRay[pick].length);
}while("".equals(oneRay[pick][0]));
area.setText(oneRay[pick][0]);
从控制台,我收到发生 NPE 的错误 - 这是怎么回事,当我的 Random 对象初始化时,由于我的 println 检查点,我可以清楚地看到数组已满,因此存在:
called(); has been called - oneRay.length = 15oneRay[0].length2
called(); has been called - oneRay.length = 15oneRay[0].length2
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at wbh.SwingImplementation.called(SwingImplementation.java:105)
尽管我试图解决这个问题,但我从昨天开始就一直遇到这个问题 - 我的数组显然在复制,那么这个 NullPointer 是什么? 感谢所有拥有并希望能帮助我的人! 干杯
【问题讨论】:
-
可以存在引用数组,但包含空引用。可以复制空引用,但不能用于访问对象。
-
当你初始化一个数组
String[] arr = new String[X]时,它包含X个空引用作为它的元素。您必须初始化每个元素。 -
如果你想调试这个,使用带有固定种子的
new Random( seed )可以重现错误
标签: java arrays swing nullpointerexception do-while