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

Компактный конструктор record в Java

Иногда перед сохранением компонентов нужна проверка или правка значений. Для этого в теле record пишут компактный конструктор: заголовок совпадает с именем типа, параметры не перечисляют - в теле доступны имена компонентов как локальные переменные:

record Post(String title, int views) { public Post { if (views < 0) { throw new IllegalArgumentException("views"); } } }

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

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

В компактном конструкторе можно изменить значение компонента перед тем, как компилятор запишет его в поле. Часто так нормализуют строки:

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

После блока проверок компилятор сам выполняет присваивание this.компонент = компонент для каждого поля заголовка. Явно писать this.title = title в компактном конструкторе не нужно:

Post post = new Post("", 0); System.out.println(post.title());

Сделайте record Employee с компонентами name и salary. В компактном конструкторе запретите оклад меньше 0. Создайте сотрудника с окладом 50000 и выведите salary().

Сделайте record Employee с компонентами title и views. В компактном конструкторе обрежьте пробелы у title. Создайте публикацию " Tips " и выведите заголовок.

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