Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗jvOpRcInr 75 of 147 menu
◀ ▶

Введение в records в Java

Record - короткая запись типа, который держит набор связанных полей: заголовок публикации и число просмотров, имя сотрудника и оклад, код товара и цена. Такие значения передают между методами, кладут в списки и карты, сравнивают между собой, не меняя уже созданный объект.

Обычный класс с полями в конструкторе уже знаком по разделу про классы. Для двух экземпляров с одинаковыми данными метод equals без своей реализации сравнивает ссылки, а вывод в консоль не показывает поля, пока не переопределить toString. Для записей-контейнеров это лишняя работа на каждый тип.

Ключевое слово record сообщает компилятору, что тип нужен именно для данных. По списку компонентов в заголовке генерируются конструктор, методы доступа, equals, hashCode и toString - подробнее в следующих уроках. Объявление выглядит так:

record Post(String title, int views) {}

Создадим запись и выведем заголовок вместе с числом просмотров:

Post post = new Post("News", 12); System.out.println(post.title()); System.out.println(post.views());

После создания объект ведёт себя как контейнер данных: компоненты доступны через методы с тем же именем, лишней логики в типе нет. Record не заменяет иерархии с наследованием и абстрактные классы - он дополняет их там, где важнее содержимое полей, чем поведение отдельного типа.

Сделайте record Book с компонентами title и pages. Создайте книгу "Notes" на 120 страниц и выведите на экран оба компонента в двух строках.

Сделайте record Coord с компонентами x и y типа int. Создайте точку new Coord(3, 7) и выведите объект на экран одной командой System.out.println.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить