вопрос
Сегодня столкнулся с проблемой.После того, как мой код был скомпилирован локально, я отправил код.Мой коллега снял код и сообщил об ошибке компиляции: доступ к локальной переменной xxx из внутреннего класса, ее нужно объявить как окончательный тип . Что тут происходит?
анализировать
В соответствии с причиной запроса об ошибке обычно говорят, что java 1.8 не настроена в конфигурации build.gradle, поэтому локальные переменные, которые не объявлены как final, не могут использоваться во внутренних классах. Но я проверил свой файл build.gradle, конфигурации нет, и я не использовал окончательную модификацию, почему я могу ее скомпилировать?
причина
Наконец, я использовал метод контрольных переменных, чтобы найти причину.Градл версия моего коллеги и я разные.Я оптимизировал скорость компиляции локально. Поэтому версия gradle и плагин были обновлены и адаптированы. Когда я понизил градель до исходной версии, я также получил ошибку компиляции. Так что подозреваете, что более высокая версия gradle оптимизирует это?
Решение
- Добавить окончательную модификацию
- Настройте версию Java 1.8 или выше.
- Обновите Gradle до последней версии