Выпуск Java 21 в настоящее время запланирован на четвертый квартал 2023 года. Точная дата выпуска может быть изменена в зависимости от текущих процессов разработки и тестирования. Разработчики и энтузиасты Java с нетерпением ждут новых функций и улучшений, которые Java 21 принесет в их проекты по программированию.
Основные методы безымянных классов и экземпляров: предварительный просмотр JEP 445 в Java 21
В Java 21 представлена новая функция под названием «Безымянные классы и основные методы экземпляра» в рамках предложения по улучшению Java (JEP) 445. Эта предварительная функция направлена на упрощение создания небольших одноразовых классов без необходимости явных объявлений классов. В этой статье мы рассмотрим концепцию безымянных классов и основных методов экземпляра, а также их потенциальные преимущества в Java 21.
Безымянные классы. В традиционном программировании на Java каждый класс должен иметь имя и соответствующее явное объявление. Безымянные классы, представленные в Java 21, нарушают это соглашение, позволяя разработчикам создавать анонимные классы без явного объявления классов.
Обычный пример кода Java-программы:
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello world!"); } }
Пример кода программы Java 21:
void main() { System.out.println("Hello world!"); }
Да, это полная программа Java. Имя класса не требуется.
javac --release 21 --enable-preview HelloWorldTest.java java --enable-preview HelloWorldTest Hello world! or java --enable-preview --source 21 HelloWorldTest.java Hello world!
Сопоставление шаблонов для коммутатора — JEP 441
Сопоставление шаблонов для коммутатора — это новая функция в Java 21, которая позволяет сопоставлять значения с различными шаблонами, включая классы, интерфейсы и массивы. Это можно использовать для написания более кратких и удобочитаемых операторов переключения.
Обычный код:
Object testobj = getObject(); if (testobj instanceof String teststring && teststring.length() > 5) System.out.println(teststring.toUpperCase()); else if (testobj instanceof String teststring) System.out.println(teststring.toLowerCase()); else if (testobj instanceof Integer i) System.out.println(i * 20); else if (testobj instanceof Position(int a, int b)) System.out.println(a + "/" + b);
Пример кода программы Java 21:
Object testobj = getObject(); switch (testobj) { case String teststring when teststring.length() > 5 -> System.out.println(teststring.toUpperCase()); case String teststring -> System.out.println(teststring.toLowerCase()); case Integer i -> System.out.println(i * 20); case Position(int a, int b) -> System.out.println(a + "/" + b); default -> {} }
Другие особенности Java 21:
- Усовершенствования записей: в Java 21 представлены улучшения записей, функция, представленная в Java 14. В Java 21 записи получают возможность определять нестатические поля, что позволяет использовать более гибкие и полные классы данных.
- Улучшения запечатанных классов: запечатанные классы, представленные в Java 15, теперь поддерживают ключевое слово «разрешения» для указания разрешенных подклассов. Эта функция обеспечивает лучший контроль над иерархиями классов и улучшает инкапсуляцию.
- Улучшенные аннотации обнуляемости. В Java 21 представлены расширенные аннотации обнуляемости, которые позволяют разработчикам выражать обнуляемость определенных элементов внутри типа, таких как поля и параметры. Это помогает в обеспечении более строгих правил нулевой безопасности.
- Улучшенные примитивные оболочки: Java 21 повышает производительность примитивных оболочек, устраняя ненужное создание объектов в определенных сценариях. Это улучшение приводит к лучшему использованию памяти и уменьшению накладных расходов.
- Компактное форматирование чисел. В Java 21 представлен новый API для форматирования чисел в компактной форме, что упрощает отображение больших чисел в более удобочитаемом формате. Эта функция особенно полезна при работе с интернационализацией и локализацией.
- Улучшенные инструменты и поддержка IDE: Java 21 направлена на улучшение инструментов и поддержки IDE с расширенными функциями для навигации по коду, автозаполнения и рефакторинга. Разработчики могут рассчитывать на более плавную разработку при использовании популярных Java IDE.
Приятного чтения! Следите и делитесь с друзьями и контактами.