• 【javaErr】 Generating equals/hashCode implementation but without a call to superclass,


    @EqualsAndHashCode  默认不继承父类

    修复此问题的方法很简单: 


    1. 使用@Getter @Setter @ToString代替@Data并且自定义equals(Object other) 和 hashCode()方法,比如有些类只需要判断主键id是否相等即足矣。
    2. 或者使用在使用@Data时同时加上@EqualsAndHashCode(callSuper=true)注解。

    为什么使用lombok 的@Data 注解的时候会出现警告提示?


    Generating equals/hashCode implementation but without a call to superclass,
    even though this class does not extend java.lang.Object.
    If this is intentional, add '(callSuper=false)' to your type. 

    @Data//当子类继承父类之后 如果存在相同属性则会出现此问题
    @ToString
    public class BusinessException extends RuntimeException {

    }

     首先要知道: @Data注解包含了这些注解
     @see Getter
     @see Setter
     @see RequiredArgsConstructor
     @see ToString
     @see EqualsAndHashCode
     @see lombok.Value
    1. 此注解会生成equals(Object other) 和 hashCode()方法。
    2. 它默认使用非静态,非瞬态的属性
    3. 可通过参数exclude排除一些属性
    4. 可通过参数of指定仅使用哪些属性
    5. 它默认仅使用该类中定义的属性且不调用父类的方法
    6. 可通过callSuper=true解决上一点问题。让其生成的方法中调用父类的方法。
    另:@Data相当于@Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCode这5个注解的合集。
    因为@EqualsAndHashCode默认不继承父类 就是说 重写hashcode和equals的时候 不包含父类的字段值,所有只会比较自己对象里面的字段值  显然这是错误的

  • 相关阅读:
    宏定义函数 字符串 多行书写采用换行
    new / delete && new[] / delete[]
    删除vector中的重复元素
    AES加密算法通用版本
    字符串匹配KMP算法详解
    超外差【整理】
    LTE PDCCH 盲检测
    PDCCH学习
    PDCCH format 与传输模式之间的关系
    LTE测量事件主要有下面几种:Event A1、Event A2、Event A3、Event A4、Event A5、Event B1、Event B2
  • 原文地址:https://www.cnblogs.com/jiannanchun/p/15890389.html
Copyright © 2020-2023  润新知