2016-12-15 58 views
0

我在编写pojos时使用lombok的注释@Data,因为它自动为我生成构造函数,hashCode以及其他方法。它像一个魅力,直到我试图在这样一个Pojo类中使用@Data。创建POJO时添加规则

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

我需要做的就是限制创建这个POJO时fromto值,以便to总是比from更大,但似乎为了达到这样的逻辑,我不得不重新改写构造函数全部由我自己制作,其代码类似于this.name = name。 PS:我认为从继承中使用super可能是一种解决方法,但它可能会使程序难以理解。

有没有更好的方法来满足这种需求?

回答

0

看看龙目岛的网站,我没有看到任何方法来限制构造函数参数到特定的值,特别是相对于另一个可能还没有被初始化的变量。你可能必须为这个类创建一个具体的构造函数。

,但它可以使程序更难理解

我真的不会因为你已经在使用龙目岛,试图跟踪时会做任何大的程序非常混乱有关担心下来一个特定的领域/方法。

0

@Data annotation没有提供任何方法来验证构造参数。我觉得你需要用@Getter @Setter @ToString @EqualsAndHashCode注释来注释pojo,并自己编写构造函数。