Произошло ли когда-нибудь "критическое изменение" в спецификации языка 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

Другие вопросы по тегам