我所遇到的问题:
当我看到Lombok的@EqualsAndHashCode注解可以重写equals和hashcode时,就像自己操作一下。
然后。。。
package domain;
import lombok.AllArgsConstructor;
import lombok.Data;
@Data
@AllArgsConstructor
public class User {
private String name;
private int age;
}
import domain.User;
public class UserTest {
public static void main(String[] args) {
User user1 = new User("szt", 18);
User user2 = new User("szt", 18);
if (user1.equals(user2))
System.out.println("相等");
else
System.out.println("不相等");
}
}
竟然相等了!!!
一度怀疑自己对equals的理解
反复验证始终找不到问题所在
。
。
。
查了半天才发现@Data 注解会自动添加@EqualsAndHashCode注解
Lombok 的 @Data 注解可以为 Java 类自动生成 equals() 和 hashCode() 方法!!!
使用 @Data 注解会自动添加以下注解:
@Getter
@Setter
@RequiredArgsConstructor
@ToString
@EqualsAndHashCode