0

尽管有以下证据表明我的数组确实存在,但我仍继续收到此 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 是什么?感谢所有拥有并希望能帮助我的人!干杯

4

1 回答 1

0

对于oneRay[0].length,数组的第 0 个元素必须有一个值。对于oneRay[pick].length,数组的pickth 元素必须有一个值。

于 2013-09-22T13:38:46.510 回答