• lombok使用中出现继承关系的对象时,出现的问题及解决办法


    在Springboot中使用lombok使代码更加的优雅 https://www.projectlombok.org/

    在idea中继承lombok插件就不说了

    今天出现的问题是lombok在继承关系时,toString方法无法打印基类属性,比较对象equals的时候也会略过基类属性,只会比较子类的属性值是否全等

    那么首先去了解一下lombok中我们用的最多的注解@Data

    这是在官网上截取的一段@Data的解释:

    @Data是一个方便的快捷方式注释,它捆绑了@ToString@EqualsAndHashCode@Getter/@Setter@RequiredArgsConstructor它们的特征:换句话说,@Data生成通常与简单POJO(普通旧Java对象)和bean相关联的所有样板:所有字段的getter,所有非的setter最终场,和适当的toStringequalshashCode实现涉及类的字段和初始化所有final字段,以及不具有初始已打上所有非最终场构造@NonNull,以保证该领域从来都不是空值。

    @Data就像具有隐式@Getter@Setter@ToString@EqualsAndHashCode@RequiredArgsConstructor在类注解(不同之处在于没有构造将生成如果已经存在任何明确写入构造函数)。但是,这些注释的参数(例如callSuperincludeFieldNamesexclude)不能设置@Data如果您需要为这些参数中的任何一个设置非默认值,只需显式添加这些注释; @Data足够聪明,可以遵循那些注释。

    说白了,它就是很多注解的集合,并且生成的get,set,equals、hashCode都是针对于自己的,如果想同时把父类的也加进来怎么办呢,其实官网解释已经给出了说明,就是显示的指定莫些注解的callSuper参数,

    如果说子类和父类要并为同一个对象进行toString,equals判断那么在类上加入:

    1 @ToString(callSuper = true)
    2 @EqualsAndHashCode(callSuper = true)

    官网很重要

  • 相关阅读:
    KSTORE日常工作遇到问题总结
    调用bat文件执行java文件
    腾讯课堂十大Excel函数
    《将博客搬至CSDN》
    oracle 累加功能,累加百分比
    验证身份证是否合法
    远程登录修改密码
    二叉树的遍历
    nginx启动、重启、关闭
    状态模式-State-订单状态
  • 原文地址:https://www.cnblogs.com/h-java/p/10220918.html
走看看 - 开发者的网上家园