РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
73 of 1163 menu

Компонент record

Компонент record - это переменная, объявленная в заголовке записи (record). Каждый компонент автоматически становится private final полем, для него генерируется метод-аксессор с тем же именем, а также он участвует в конструкторе, методах equals, hashCode и toString. В первом параметре (в заголовке записи) мы передаем тип и имя компонента, во втором - следующий компонент, и так далее. Компоненты позволяют кратко описывать неизменяемые данные без написания шаблонного кода.

Синтаксис

public record RecordName(Type1 component1, Type2 component2, ...) { }

Пример

Давайте создадим запись Point с двумя компонентами x и y и выведем их значения через методы-аксессоры:

public class Main { public record Point(int x, int y) { } public static void main(String[] args) { Point p = new Point(1, 2); System.out.println(p.x()); System.out.println(p.y()); } }

Результат выполнения кода:

1 2

Пример

Давайте создадим запись User с компонентами name и age и проверим автоматически сгенерированный метод toString:

public class Main { public record User(String name, int age) { } public static void main(String[] args) { User user = new User("abcde", 25); System.out.println(user); } }

Результат выполнения кода:

User[name=abcde, age=25]

Пример

Давайте создадим запись Pair с компонентами first и second и сравним два объекта через метод equals:

public class Main { public record Pair(String first, String second) { } public static void main(String[] args) { Pair p1 = new Pair("abcde", "12345"); Pair p2 = new Pair("abcde", "12345"); System.out.println(p1.equals(p2)); } }

Результат выполнения кода:

true

Смотрите также

  • ключевое слово record,
    которое объявляет класс записи
  • компактный конструктор compact constructor,
    который позволяет валидировать компоненты
  • класс class,
    который является обычным объявлением класса
  • интерфейс interface,
    который может быть реализован записью
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить