Статьи

Первый взгляд на записи в Java 14

Вот первый взгляд на записи в Java 14!

Предстоящий выпуск Java будет 14-й версией, которую планируется сделать общедоступной в марте 2020 года. Как и уже выпущенные версии в рамках нового 6-месячного цикла выпуска, ожидается , что JDK 14 будет иметь несколько новых функций как на уровне языка, так и на уровне JVM. ,

Однако, если мы посмотрим на список возможностей, то заметим довольно много языковых возможностей, которые ожидают разработчики: записи, выражения переключения (которые существуют в JDK 13, но в режиме предварительного просмотра) и сопоставление с образцом. Давайте посмотрим на записи, которые кажутся интересным дополнением к языку.


Вам также может понравиться:
Представляем Java Record

Предпосылки

Все, что нам нужно, это двоичный файл JDK 14 с ранним доступом с веб-сайта OpenJDK: https://jdk.java.net/14/ .

Что такое запись?

Запись в основном представляет собой «класс данных», особый вид класса, предназначенный для хранения в нем чистых данных. Семантика записей уже существует в подобных конструкциях в других языках, таких как классы данных в Kotlin. Объявляя тип как запись, разработчик четко выражает свое намерение, чтобы тип представлял только данные. Синтаксис объявления записи намного проще и лаконичнее по сравнению с использованием обычного класса, где обычно требуется реализовать основные Objectметоды, такие как equals()и hashCode()(часто называемые «стандартным» кодом). Записи кажутся интересным выбором при моделировании таких вещей, как классы модели предметной области (которые могут быть сохранены через ORM) или объекты передачи данных (DTO).

Хороший способ подумать о том, как записи реализованы на языке, — это запомнить перечисления. Enum — это также класс, имеющий специальную семантику с более приятным синтаксисом. Поскольку оба они все еще являются классами, многие функции, доступные в классах, сохраняются, поэтому баланс между простотой и гибкостью в их дизайне сохраняется.

Записи являются функцией языка предварительного просмотра , что означает, что, хотя она полностью реализована, она еще не стандартизирована в JDK и может использоваться только путем активации флага. Функции предварительного просмотра языка могут быть обновлены или даже удалены в будущих версиях. Подобно выражениям переключения, оно может стать окончательным и постоянным в будущей версии.

Пример записи

Вот пример того, как выглядит основная запись:


Джава