创建POJO时添加规则

时间:2016-12-15 02:11:32

标签: java lombok

我在编写pojos时使用lombok的注释@Data,因为它会自动生成构造函数,hashCode以及其他方法。在我试图在这样的pojo类中使用@Data之前,它就像一个魅力。

@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可能是一种解决方法,但它可能会使程序更难被理解。

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

查看Lombok的网站,我没有看到任何方法将构造函数参数限制为特定值,尤其是相对于可能尚未初始化的另一个变量。您可能必须为此类创建一个具体的构造函数。

  

但它可能会使程序更难被理解

我真的不担心,因为你已经在使用Lombok,这会让任何大型程序在尝试追踪特定字段/方法时都会非常混乱。

相关问题