Значение переменной по умолчанию в 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.