Lombox使用@Tolerate实现冲突兼容
场景
使用Lombox能够减少程序员的重复工作提高工作效率,而Lombox的注解基本是基于标准的(如,标准的Builder模式),而实际开发的时候有时候为了实现某些能力会对标准实现做一些变形,而这个时候Lombox的标准实现就会无法满足需求。
例如,这样一个场景:
使用@Builder
对一个DTO实现一个构造器,但是在做Json反序列化的时候发生错误,原因就是缺少无参公共的构造函数,而手动写一个无参构造函数的时候编译错误,就是和@Builder
冲突,虽然标准的@Builder
没法是需要私有化构造函数的,但是在某些场景下我们需要对这种标准变形,这个时候Lombox提供了@Tolerate
实现对冲突的兼容。
Sample
@Data
@Builder
public class User {
@Tolerate
public User() {}
private String name;
private int age;
}
注意
-
@Tolerate
这个功能还处于实验阶段(我写这篇blog的时候),使用需要注意后续版本更新的变化 - 尽量使用标准的实现,如果没有必要可以不用这种方式
网友评论