Как проверить, является ли элемент массива пустым для ухода от NullPointerException в Java

19
задан Lahiru Ashan 28 November 2016 в 07:30
поделиться

6 ответов

У Вас есть больше продолжения, чем Вы сказали. Я запустил следующий расширенный тест от Вашего примера:

public class test {

    public static void main(String[] args) {
        Object[][] someArray = new Object[5][];
        someArray[0] = new Object[10];
        someArray[1] = null;
        someArray[2] = new Object[1];
        someArray[3] = null;
        someArray[4] = new Object[5];

        for (int i=0; i<=someArray.length-1; i++) {
            if (someArray[i] != null) {
                System.out.println("not null");
            } else {
                System.out.println("null");
            }
        }
    }
}

и получил ожидаемый вывод:

$ /cygdrive/c/Program\ Files/Java/jdk1.6.0_03/bin/java -cp . test
not null
null
not null
null
not null

Вы возможно пытающийся проверить длины someArray [индекс]?

22
ответ дан 30 November 2019 в 03:53
поделиться

Это не делает.

Посмотрите ниже. Программа Вы отправили выполнения, как предполагается.

C:\oreyes\samples\java\arrays>type ArrayNullTest.java
public class ArrayNullTest {
    public static void main( String [] args ) {
        Object[][] someArray = new Object[5][];
            for (int i=0; i<=someArray.length-1; i++) {
                 if (someArray[i]!=null ) {
                     System.out.println("It wasn't null");
                 } else {
                     System.out.printf("Element at %d was null \n", i );
                 }
             }
     }
}


C:\oreyes\samples\java\arrays>javac ArrayNullTest.java

C:\oreyes\samples\java\arrays>java ArrayNullTest
Element at 0 was null
Element at 1 was null
Element at 2 was null
Element at 3 was null
Element at 4 was null

C:\oreyes\samples\java\arrays>
6
ответ дан 30 November 2019 в 03:53
поделиться

Данный код работает на меня. Заметьте, что someArray [я] являюсь всегда пустым, так как Вы не инициализировали второй размер массива.

1
ответ дан 30 November 2019 в 03:53
поделиться

Пример кода не бросает NPE. (также не должно быть a''; позади меня ++)

1
ответ дан 30 November 2019 в 03:53
поделиться

Ну, в первую очередь, тот код не компилирует.

После удаления дополнительной точки с запятой после того, как я ++, это компилирует и хорошо работает для меня.

1
ответ дан 30 November 2019 в 03:53
поделиться

Сражаясь вне зависимости от того, компилируется ли код или нет, я бы сказал, создайте массив из шести, 5, добавьте 2 значения и напечатайте их, вы получите два значения, а остальные равны нулю. Вопрос в том, что размер 5, но в массиве 2 объекта. Как узнать, сколько объектов присутствует в массиве

0
ответ дан 30 November 2019 в 03:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: