@EqualsAndHashCode()注解的功能大全

乔欣 Java经验 发布时间:2023-03-17 06:26:30 阅读数:12509 1
下文笔者讲述@EqualsAndHashCode注解的功能说明,如下所示
@EqualsAndHashCode注解是lombok中的一个注解,我们日常很少见
但我们一定要了解其具体功能,如下所示

@EqualsAndHashCode功能

1.此注解会生成equals(Object other)和hashCode()方法 

2.它默认使用非静态,非瞬态的属性

3.可通过参数exclude排除一些属性

4.可通过参数of指定仅使用哪些属性

5.它默认仅使用该类中定义的属性且不调用父类的方法

6.可通过callSuper=true解决上一点问题。让其生成的方法中调用父类的方法。

注意事项:
   @Data相当于@Getter,@Setter,
     @RequiredArgsConstructor,
	 @ToString,
	 @EqualsAndHashCode这5个注解的合集

EqualsAndHashCode使用场景

 
如果我们使用@Data注解
   则代表使用@EqualsAndHashCode注解
    此类中存在equals(Object other)和hashCode()方法,并不会使用父类的属性

例:
  有多个类有相同的部分属性
  将它们定义到父类中,但id(数据库主键)在父类中
  如果此时进行部分对象比较时
   则会出现并不相等,因为lombok自动生成equals(Object other)和hashCode()方法判定为相等

此时我们可使用以下方法解决此类异常 
   方式1:使用@Getter @Setter @ToString代替@Data并且自定义equals(Object other) 和 hashCode()方法
       如 一些类只判断主键即可,则重写equals方法(使用主键判断) 

   方式2:使用@Data时同时加上@EqualsAndHashCode(callSuper=true)注解
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202303/16790062506069.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者