如何使用
@Data
该注解相当于同时加上以下注解@Setter @Getter,@ToString,@EqualsAndHashCode,作用于类中
@Getter@Setter
作用于属性上,自动生成get,set方法.
@NonNull
该注解快速判断是否为空,如果为空,则抛出java.lang.NullPointerException
@Synchronized
该注解自动添加到同步机制,有趣的是,生成的代码并不是直接锁方法,而是锁代码块, 作用范围是方法上
@ToString
该方法大家应该非常熟悉,但需要注意的是:@ToString有多个属性可以进一步设置:
callSuper 是否输出父类的toString方法,默认为false
includeFieldNames 是否包含字段名称,默认为true
exclude 排除生成tostring的字段
@Cleanup
注释可用于确保已分配的资源被释放,如IO的连接关闭。
为什么出现,解决了什么问题
1.可以帮助我们避免空指针
2.自动帮我们调用close()方法
3.自动生成Getter/Setter方法
4.自动生成无参数构造函数
5.自动生成全参数构造函数
6.自动为所有字段添加@ToString, @EqualsAndHashCode, @Getter方法,为非final字段添加 @Setter,和@RequiredArgsConstructor!
以前是怎么做的
1.我们会定义很多的domain实体类,需要给每个字段手动添加setter/getter.
2.需要打印对象的时候,需要自己手动的添加toString()方法.
3.给domain添加无参构造函数和所有参数的构造函数.