lombok报错—方法缺少 ‘@Override’ 注解

解决:

@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);
}

关于Zeno Chen

本人涉及的领域较多,杂而不精 程序设计语言: Perl, Java, PHP, Python; 数据库系统: MySQL,Oracle; 偶尔做做电路板的开发,主攻STM32单片机
此条目发表在Java分类目录。将固定链接加入收藏夹。