Примечание: вместо этой рождественской елки вы можете просто использовать @Value
в классе. Обратите внимание, что это делает класс final, и делает все поля приватными и final, а также все остальные. Это близко к тому, что записи (они тоже являются окончательными, и все поля внутри являются окончательными).
record
все еще в предварительном просмотре, поэтому для производственного кода, очевидно, это еще не подходит. Используйте lombok.
Как только записи выйдут из предварительного просмотра, это будет сложнее. Ломбок FAR более гибкий; Вы можете легко поменять местами новый аспект без необходимости перезаписывать весь код (вы можете просто, например, добавить предложение 'extends' в свой класс, не прибегая к ручному написанию метода equals и hashCode; что-то, что записи не могут дать вам). Lombok также предоставляет вам больше возможностей: например, вы можете добавить конструктор, добавив аннотацию @Builder
; записи не могут.
Если маловероятно, что вы собираетесь использовать что-либо из этого для класса, который вы разрабатываете, я бы использовал записи.
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я основной вкладчик проекта Lombok.