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

Статические поля и методы в record в Java

Компоненты заголовка принадлежат каждому экземпляру. Статические поля и методы общие для типа: их объявляют с static в теле record и вызывают через имя типа, без new:

record Post(String title, int views) { static int maxViews = 1000; static boolean withinLimit(int views) { return views <= maxViews; } }

Вызовем статический метод записи и прочитаем поле maxViews:

System.out.println(Post.withinLimit(120)); System.out.println(Post.maxViews);

Статическое поле не попадает в equals, hashCode и toString record - там только компоненты. Так хранят счётчики, константы и фабричные методы:

Post post = Post.draft("Notes"); System.out.println(post.views());

Статический метод может создавать экземпляр и обращаться к компонентам только у уже существующего объекта, переданного параметром:

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

Сделайте record Employee с компонентами name и dept. Добавьте статическое поле defaultDept со значением "General" и выведите его через Employee.defaultDept.

Сделайте record Employee с компонентами name и id. Добавьте статический метод guest(), возвращающий new Employee("Guest", 0). Выведите имя созданного сотрудника.

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