Класс, который вы унаследовали, находится всего в 1 шаге от полного открытия снаружи (для этого потребуется заполнить поля public
), что потенциально плохо, так как при использовании этого класса могут скрываться лишь несколько ошибок.Даже если класс используется разумным образом, вы не можете гарантировать его в будущем, если не закроете его немного.
Вы можете создать его без значений, со всеми значениями, вы можете построить его только с помощьюнекоторые значения, и вы можете изменить его через сеттеры.
Скорее всего, это также нарушает контракт equals
и hashcode
(они должны быть рассчитаны с использованием одного и того же набора неизменяемых полей - очень грубое правило, которое имеет смысл при использовании ломбоков, но, очевидно,подробнее).
Сначала я определил бы использование этого класса и выяснил, может ли он быть подвергнут рефакторингу в нечто более близкое к неизменяемому.