问题:
Eclipse里,阿里编码规约插件扫描代码出现,但是idea却没有。
解决:
将以上注解改成
@Setter @Getter @NoArgsConstructor @AllArgsConstructor @ToString(callSuper = true)
原因:
1、@Data包含了@Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCode。
@RequiredArgsConstructor: 会生成一个包含常量,和标识了NotNull的变量的构造方法。生成的构造方法是私有的private,不要用此。特殊需求自己写。
@Accessors:设置前缀。如:@Accessors(prefix = "abc") private String abcAge 当生成get/set方法时,会把此前缀去掉。
@EqualsAndHashCode:默认仅使用该类中定义的属性且不调用父类的方法,可通过callSuper=true解决。
2、不管用@Data还是@Setter时,加上@EqualsAndHashCode都会报“缺少@Overide”错误。
以后用到比较对象时,采用id比较,如果非要比较全字段时,自行实现,如
@Override public int hashCode() { return super.hashCode(); } @Override public boolean equals(Object obj) { return super.equals(obj); }
lombok详解:https://www.jianshu.com/p/365ea41b3573