1. 使用@Getter @Setter @ToString代替@Data并且自定义equals(Object other)和hashCode()方法,比如有些类只需要判断主键id是否相等即足矣。 2. 或者使用在使用@Data时同时加上@EqualsAndHashCode(callSuper=true)注解。
lombok 中@EqualsAndHashCode(callSuper = false/true) 什么区别# 其实就是当一个类继承自一个父类时,如果callSuper=true,那么生成的equals和 hashcode方法会讲父类中的属性包括,默认callSuper =false @Data@EqualsAndHashCode(callSuper =false)publicclassEHSubClassextendsEHSuperClass{privateStringname;privateStringaddr...
首先,确保已经在项目中引入了Lombok库的依赖。 创建一个带有循环引用的对象,例如Person类: 代码语言:txt 复制 import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; @Data @EqualsAndHashCode(exclude = "friend") public class Person { private String name; private ...
在这个例子中,我们使用@EqualsAndHashCode(onlyExplicitlyIncluded = true)来告诉Lombok只考虑那些明确标记为包括在相等性判断中的字段。然后,通过在getId()方法上使用@EqualsAndHashCode.Include注解,我们指定了id字段应该被包括在相等性判断中。 总结 Lombok的@Data注解确实为Java开发带来了很多便利,但在使用它时,我们需...
实体类的 equals和hashCode方法可以通过Lombok的@Data注解来自动生成。使用@Data注解时,Lombok会为类生成equals()和hashCode()方法,这些方法将基于类中的字段来实现。 需要注意的是,当使用 @Data注解时,默认情…
import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import lombok.ToString; @Data @NoArgsConstructor @AllArgsConstructor @ToString @EqualsAndHashCode public class Person { private String name; private int age; } 通过使用@Data、@NoArgsCons...
一、@Data注解 @Data注解相当于@Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCode这5个注解的合集。 通过官方文档,可以得知,当使用@Data注解时,则有了@EqualsAndHashCode注解,那么就会在此类中存在equals(Object other) 和 hashCode()方法,且不会使用父类的属性。
@Data:注解在类上,相当于同时使用了@ToString、@EqualsAndHashCode、@Getter、@Setter和@RequiredArgsConstrutor这些注解,对于POJO类十分有用 @Value:用在类上,是@Data的不可变形式,相当于为属性添加final声明,只提供getter方法,而不提供setter方法 @Builder:用在类、构造器、方法上,为你提供复杂的builder APIs,让你...
@EqualsAndHashCode注解的作用就是自动实现model类的equals方法和hashcode方法。 我们在实际工作中经常会使用lombok来简化我们的开发,例如我们可以在定义的model类上添加@Data注解,从而免去手写get、set、toString、equals、hashcode等方法。 定义一个基础类Car
使用@Data时,加上@EqualsAndHashCode(callSuper=true)注解。 使用@Getter @Setter @ToString代替@Data并且自定义equals(Object other)和hashCode()方法。 【示例】测试@Data和@EqualsAndHashCode @Data@ToString(exclude = "age")@EqualsAndHashCode(exclude = { "age", "sex" })public class Person {protected St...