У меня есть эта ошибка при попытке использовать локальный член одного класса во внутреннем классе внутри. Я знаю, что объявить его окончательным, решит проблему, но я прочитал, что Java 8 должен обрабатывать ее автоматически, я использую Intellij с Java 8, и он все еще не компилируется. Есть ли другой способ исправить это, не объявив его окончательным? спасибо.«переменная доступна изнутри внутреннего класса, которая должна быть объявлена окончательной» ошибка
-1
A
ответ
4
Я знаю, что объявить его окончательным, решит проблему, но я прочитал, что Java 8 должен обрабатывать ее автоматически.
Java 8 будет обрабатывать его, если переменная эффективно окончательная.
я могу думать о двух возможных объяснений:
Может быть переменная не эффективно окончательным. Попробуйте явно объявить его как
final
. Если вы получите ошибку компиляции (например, заявив, что что-то пытается изменитьfinal
), то переменная не является окончательной.Возможно, вы не настроили Intellij и проект правильно для Java 8; например
- Установить уровень источника; см @ ответ Саман в
- Проверьте у вас есть право JDK отмеченными: Java 8 doesn't compile on Intellij15
+0
К сожалению, это был первый вариант. Благодарю. –
1
Смежные вопросы
- 1. Android Studio: переменная «requiredPermissions» доступна изнутри внутреннего класса, должна быть объявлена окончательной
- 2. Переменная должна быть объявлена окончательной
- 3. Intellij не сообщает, что локальная переменная доступна из внутреннего класса и должна быть объявлена окончательной.
- 4. Локальная переменная доступна изнутри внутреннего класса: должна быть объявлена окончательная ошибка java swing
- 5. «Переменная доступна изнутри внутреннего класса, должна быть объявлена окончательная» ошибка в пользовательском адаптере
- 6. Переменная точка должна быть окончательной
- 7. ошибка: локальная переменная доступна изнутри внутреннего класса; должно быть объявлено окончательным
- 8. Ошибка: локальная переменная a доступна изнутри внутреннего класса; должно быть объявлено окончательным
- 9. Должна ли эта переменная быть объявлена нестабильной?
- 10. Локальная переменная должна быть окончательной ошибкой Java
- 11. переменная доступна в пределах внутреннего класса
- 12. переменной потребности быть объявлена из внутреннего класса
- 13. Переменная LibGDX, доступная изнутри внутреннего класса
- 14. Доступ к переменной изнутри внутреннего класса, должен быть объявлен окончательным
- 15. Переменная баллов не будет обновляться и должна быть окончательной?
- 16. Локальная переменная num, определенная в охватывающей области, должна быть окончательной или эффективной окончательной.
- 17. Java: Локальная переменная mi, определенная в охватывающей области, должна быть окончательной или эффективной окончательной
- 18. Почему переменная должна быть объявлена глобальной переменной до ее назначения?
- 19. Java: Почему Локальная переменная должна быть объявлена окончательная
- 20. Почему эта переменная в константах.rb должна быть объявлена глобальной?
- 21. Неопределенная переменная ошибка, которая не должна быть переменной
- 22. переменная, используемая в выражении лямбда, должна быть окончательной или эффективной окончательной.
- 23. Сообщение компилятора Java8 Stream - локальная переменная должна быть окончательной или эффективной окончательной
- 24. Темы: Локальная переменная, определенная в охватывающей области, должна быть окончательной или эффективной окончательной.
- 25. PLS-00201: идентификатор «GETALLNAMES» должна быть объявлена
- 26. Не конечная переменная из внутреннего класса: должна автоматически фиксироваться компилятором?
- 27. Переменная класса в swift может быть доступна только функцией класса ...?
- 28. Примечание: Неопределенная переменная ... переменная объявлена ошибка
- 29. Ошибка «Переменная должна быть окончательной», препятствующая циклу добавления ActionListeners к объектам в ArrayList
- 30. ошибка: левая рука должна быть переменная
Почему вы не хотите, чтобы объявить его окончательным? –
перейти на уровень 8 изменить структуру проекта – saman
Saman- я уже сделал. Энди, мне нужно это в моем университете, и я не уверен, хотят ли инструкторы использовать его. если нет лучшего способа, поэтому я предполагаю, что тот примет его. –