Каждый тип в Java имеет примитивное значение при объявлении. Эта статья содержит описание для примитивных типов данных Примитивные типы данных . Зная это, почему Eclipse показывает ошибку, сообщающую, что переменная, возможно, не была инициализирована? Если у меня есть например
int x; x++;
По ссылке
Локальные переменные немного отличаются;компилятор никогда не назначает значение по умолчанию для неинициализированной локальной переменной.Если вы не можете инициализировать локальную переменную там, где она объявлена, убедитесь, что вы присвоили ей значение, прежде чем пытаться ее использовать.Доступ к неинициализированной локальной переменной приведет к ошибке времени компиляции.
Из Спецификации языка 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
float 0.0f
двойной 0,0d
char ‘u0000’
Строка (или любой объект) null
логическое значение false
Из предоставленной вами ссылки «Примитивные типы данных»: «Локальные переменные немного отличаются; компилятор никогда не назначает значение по умолчанию для неинициализированной локальной переменной. Если вы не можете инициализировать локальную переменную там, где она объявлена, обязательно назначьте ее»значение перед попыткой его использования. Доступ к неинициализированной локальной переменной приведет к ошибке времени компиляции ".
То, что вы видите, - не ошибка, а ваши предпочтения затмения. Вы можете изменить его, чтобы игнорировать неинициализированные переменные в настройках Eclipse.