Значение переменной по умолчанию в Java

каждый тип в Java имеет примитивное значение при объявлении. В этой статье содержится описание для примитивных типов данных Примитивные Типы Данных. Зная это, почему Eclipse показывает ошибку, сообщающую мне, что переменная, возможно, не была инициализирована? Если у меня есть, например

int x;
x++;

6 ответов


по ссылке

локальные переменные немного отличаются; компилятор никогда не присваивает значение по умолчанию неинициализированной локальной переменной. Если вы не можете инициализировать локальную переменную там, где она объявлена, обязательно назначьте ей значение перед попыткой ее использования. Доступ к неинициализированной локальной переменной приведет к ошибке времени компиляции.


с Спецификация Языка Java, Java SE 8 Edition,4.12.5 начальные значения переменных:

локальная переменная (§14.4, §14.14) должна быть явно задана значением перед ее использованием либо инициализацией (§14.4), либо назначением (§15.26) таким образом, чтобы ее можно было проверить с помощью правил для определенного назначения (§16 (определенное назначение)).


локальные переменные не инициализированы.

это локальная переменная:

void aaa() {
    int x;
}

это переменная экземпляра. Они инициализируются автоматически:

class X {
    int x;
}

тип данных значение по умолчанию (для полей)

байт 0

короткое 0

int 0

длинный 0L

поплавок 0.0 f

двойной 0.0 d

char 'u0000'

String (или любой объект) null

логическое значение false


из ссылки примитивные типы данных, предоставленной вами: "Локальные переменные немного отличаются; компилятор никогда не присваивает значение по умолчанию неинициализированной локальной переменной. Если вы не можете инициализировать локальную переменную там, где она объявлена, обязательно назначьте ей значение перед попыткой ее использования. Доступ к неинициализированной локальной переменной приведет к ошибке времени компиляции".


то, что вы видите, это не ошибка, а ваши предпочтения eclipse. Вы можете изменить его, чтобы игнорировать неинициализированные переменные в предпочтении eclipse.