Почему я получаю NULL Указал исключение в этом коде?

StackOverflow https://stackoverflow.com/questions/3887709

  •  28-09-2019
  •  | 
  •  

Вопрос

public class Test {

    Integer i;
    int j;

    public static void main ( String [] args ) {
       Test t = new Test ();
       t.go();
    }

    public void go() {
       j=i;
       System.out.println(j);
       System.out.println(i);
    }
}

Выход : Исключение в потоке "Главная" java.lang.nullpointerexception at test.go (test.java:12) в test.main (test.java:8)

Это было полезно?

Решение

Это, очевидно, не ошибка. Вы получите время выполнения NullPointerexception, потому что вы распадаетесь в нулевую ссылку (i) в примитивный (j). Увидеть jls §5.1.8.

Причина i IS NULL заключается в том, что поля экземпляра инициализируются на 0, NULL или FALSE по умолчанию.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top