В марте 2021 года вышла в релиз новая версия Java.
Я уже описывал нововведения в Java 15, нововведения в Java 14 и многие другие. Есть также полноценный учебник.
Pattern Matching for instance of
Я уже описывал эту возможность в статье про новые фичи в Java 15, а также в статье про новые возможности Java 14. Там они были только в качестве preview. Однако в Java 16 эта возможность стала доступной окончательно:
1 2 3 4 5 6 7 8 9 10 |
$ ./jshell | Welcome to JShell -- Version 16 | For an introduction type: /help intro jshell> Object str1 = "Hello"; str1 ==> "Hello" jshell> if (str1 instanceof String str2) { ...> String str3 = str2; // Переменная str2 типа String ...> } |
Записи (Records)
Это тоже не что-то новое. В предыдущей версии и в позапредыдущей версии она была в качестве preview. Сейчас же она стала полноправной частью Java:
1 2 |
jshell> record Point(int x, int y) { } | created record Point |
Записи автоматически получают приватные переменные для хранения своего состояния, методы hashCode, equals, toString, работающие с переменными состояния, а также методы для получения значения каждой из переменной состояния.
Сами записи неявно final, их переменные состояния тоже final.
Запечатанные классы
Я описывал их в статье про Java 15. Теперь они во втором preview.