Произошло ли когда-нибудь "критическое изменение" в спецификации языка Java?
За исключением, вероятно, широко известного исключения из введения ключевого слова "assert", было ли когда-либо изменение в спецификации языка Java, из-за которого старый код больше не был совместим с более новыми исходными уровнями JDK?
Резюме до сих пор (большое спасибо за комментарии):
"Более старый" код Java может вызвать ошибки компиляции при обновлении до более поздней версии, если код использует объявления с использованием одного из ключевых слов, которое было введено в более поздней версии спецификации языка Java (JLS):
- утверждать
- перечисление
- strictfp
3 ответа
Java 1.2
strictfp
ключевое слово.
Java 1.4
assert
ключевое слово.
Java 1.5
enum
ключевое слово.
Java 10 сделал var
ключевое слово Это все еще допустимое имя переменной, но недопустимое имя класса.
Я полагаю, что _
был обозначен как "ключевое слово" в Java 9. См. https://blogs.oracle.com/sundararajan/underscore-is-a-keyword-in-java-9%2C-use-this-script-to-check-your-code