Lombok是否会破坏对象的封装性

前几天,在网上看到一些评论,说:Lombok的@Data注解,会把所有属性的get/set方法都生成出来,从而把不必要暴露的属性也暴露出来,破坏了对象的封装性

这句话对不对呢?对了一半。确实,@Data会把所有属性的get/set方法都进行生成。但是,破坏封装性是可以避免的,有这样忧虑是因为Lombok只学了一半

其实,我们可以在不想暴露的属性上,添加@Getter或@Setter注解,把它的AccessLevel修改下就行了:

@Data
public class MyData {
    
    private int intVal;
    
    @Getter(AccessLevel.NONE)
    private String strVal_NotAllowGet;
    
    @Getter(AccessLevel.PROTECTED)
    private double doubleVal_OnlyAllowSubClassGet;
    
    @Setter(AccessLevel.NONE)
    private boolean booleanValue_NotAllowSet;
}

版权声明:本文为Harryfin原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。