1. 使用 @Getter @Setter @ToString 代替 @Data 并且自定义 equals(Object other) 和 hashCode() 2. 或者使用在使用 @Data 时同时加上 @EqualsAndHashCode(callSuper=true) 看看下面的测试: 父类TV.java 和 子类 小米TV.java,使用注解@EqualsAndHashCode(callSuper = false) 小米tv继承tv,从继承角度讲tv有的...
> 生成 equals/hashCode 实现但不调用超类,即使此类不扩展 java.lang.Object。如果这是有意的,请将“@EqualsAndHashCode(callSuper=false)”添加到您的类型中。 警告由@Data发出,因为它通常会在不调用 super 的情况下生成 equals/hashcode。通过添加@EqualsAndHashCode(callSuper = true)修复它。 @Builder给你一个编...
import lombok.EqualsAndHashCode; @EqualsAndHashCode(callSuper = false) public class MyClass { private int field1; private String field2; // getters and setters } 这个注解告诉Lombok在生成equals和hashCode方法时不要调用超类方法。 如果需要调用超类方法: 确保你的类继承自一个具体的父类,并且在重写eq...
2. lombok @EqualsAndHashCode和@Data 在使用@Data时同时加上@EqualsAndHashCode(callSuper=true)注解。(开发一般都会同时加上这两个注解) 源码里callSuper默认值就是false,所以说我们代码里面写这一行是多余的。 callSuper = true时,子类在重写hashcode()和equals()方法时才会调用父类的属性,即把父类属性包含在一...
@NotEmpty 适用于 String、Collection集合、Map、数组等等,加了@NotEmpty 注解的参数不能为 Null 或者 长度为 0 源码注释翻译:被注释的元素既不能为null也不能为空。使用方法 实体类使用方法 @Data@EqualsAndHashCode(callSuper = false)@Accessors(chain = true)public class ArticleRequest implements Serializable...
@EqualsAndHashCode(callSuper = false):生成equals()和hashCode()方法,并且不比较父类属性,子类属性相同即可,建议子类都加上此注解 @Accessors(chain = true):开启链式调用 @Data @NoArgsConstructor @AllArgsConstructor @EqualsAndHashCode(callSuper = false) ...
if(!super.equals(o))returnfalse; @EqualsAndHashCode(callSuper = true)的作用就在于将子类和父类中的属性都来进行比较,举个例子进行说明: 父类Person: @DatapublicclassPerson{privateInteger id; } 子类User: @DatapublicclassUserextendsPerson{privateString name; ...
@EqualsAndHashCode 会自动生成equals(Object other)和hashCode()两个方法,默认会使用所有非静态,非瞬时状态的字段。 回到我的案例中,也就是说,Lombok 会将 Project 类中的 List projects 当做是 hashCode 计算的一部分(同理,equals,toString 也会存在同样的问题),而如果我的项目中出现循环引用,这就会导致死循环,...
如果你是一个Java开发者,你可能经常遇到这样的情况:为了遵循Java Bean规范或者框架的要求,你不得不为你的类写很多重复和冗余的代码,比如getter和setter方法、构造器、equals和hashCode方法等等。这些代码不仅占用了你的时间和空间,而且增加了你的维护成本和出错的风险。有没有一种方法可以让你省去这些繁琐的工作,让你...
@EqualsAndHashCode(callSuper=false) @DiscriminatorValue("blue") public class BlueBook extends Book{ private String blueMark; } 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 再新建一个 RedBook 对象,作为 Book 的另一子对象。 复制代码 ...