2016-12-15 4 views
0

Я использую аннотацию lombok @Data при написании pojos, потому что он автоматически генерирует конструктор, hashCode, а также другие методы для меня. Он работал как шарм, пока я не пытался использовать @Data в таком классе pojo.Добавить правила при создании POJO

@Data 
public class MyPojo { 
    private final String name; 
    private final int from; 
    private final int to; 
    // other fields 
} 

Что мне нужно сделать, чтобы ограничить значения from и to при создании этого POJO, так что to всегда будет больше, чем from, но мне кажется, что для того, чтобы достичь этой логики, я должен переписать конструктор сам по себе с большим количеством кода, подобного this.name = name.

PS: Я думаю, что использование super из наследования может быть обходным путем, но это может сделать программу более трудной для понимания.

Есть ли лучший способ удовлетворить эту потребность?

ответ

0

Рассматривая сайт Lombok, я не вижу способа ограничить параметры конструктора конкретными значениями, особенно относительно другой переменной, которая еще не была инициализирована. Вероятно, вам придется создать конкретный конструктор для этого класса.

, но это может сделать программу труднее быть понята

Я действительно не беспокоиться о том, что, как вы уже используете Ломбок, который сделает любую большую программу очень запутанным, когда пытаются отслеживать вниз по определенному полю/методу.

0

@ Аннотации @Data не предоставляют никакой возможности для проверки аргументов конструкции. Я чувствую, что вам нужно аннотировать ваше pojo с помощью @Getter @Setter @ToString @EqualsAndHashCode аннотации и написать конструктор самостоятельно.

 Смежные вопросы

  • Нет связанных вопросов^_^