1、问题描述

我的子类继承父类,并在子类上加了@Data注解。但在程序运行时,输出的结果只有我在子类中定义的属性,父类的属性没有输出。

这是我定义的子类:

这个是子类继承的父类:

这个是输出结果:

可以看到,只输出了子类的定义的taskId,父类的属性全无!!!

2、产生原因

@Data是会在编译时自动为实体类添加@Getter @Setter toString等方法

我看了一下编译好的.class文件

@Data注解修饰的TaskBO类生成的toString()方法只有子类中的taskId,因此输出结果没有父类属性,只有taskId。

我看官方文档对于@Data这个注解的说明中并没有说@Data可以作用于类的父类。

@Data的作用域仅局限于当前类的属性。

3、解决方法

添加@ToString(callSuper = true)

callSuper会把父类的属性作为一部分连同子类的属性一块生成toString

即:

4、总结

5、参考资料

lombok的使用和原理 - 张随笔 - 博客园 (cnblogs.com)

@Data注解不会涉父类的成员的坑,需要加callSuper = true的参数_沙漏-CSDN博客_callsuper=false

关于注解@Data和@ToString(callSuper = true) - 楼子湾 - 博客园

Java里面classes文件的理解_mll999888的专栏-CSDN博客_classes文件

最新文章

  1. cms真实问题的来源以及模拟解决方案
  2. php面试题及答案
  3. pip 安装 lxml 出错
  4. HTML5文件上传插件 Huploadify V2.1发布
  5. CentOS 6.6下Redis安装配置记录
  6. php格式化金额函数分享
  7. IBATIS动态SQL(转)
  8. HTML5新特性总结
  9. u盘安装centos
  10. php变量内存完全释放
  11. 使用jquery 1.7 及以后的版本 attr 问题
  12. Java面试准备之多线程
  13. Linux:Gentoo系统的安装笔记(二)
  14. .net framework 4.6 asp.net mvc 使用NLog
  15. Bootstrap(5)栅格系统
  16. 算法笔记(C++)
  17. Android Support Library 23.2介绍(翻译自官方文档)
  18. Unique constraint on single String column with GreenDao
  19. spring+dubbo整合
  20. ecshop中ajax的调用

热门文章

  1. CentOS 7.9 安装 redis-6.2.0
  2. DDD-领域驱动(四)-使用IMediator 实现领域事件
  3. aws上传文件、删除文件、图像识别
  4. java中实现File文件的重命名(renameTo)、将文件移动到其他目录下、文件的复制(copy)、目录和文件的组合(更加灵活方便)
  5. Codeforces Round #831 (Div. 1 + Div. 2) A-E
  6. select中DISTINCT的应用-过滤表中重复数据
  7. LoadRunner11使用代理录制脚本
  8. jvm之自动内存管理
  9. SpringCloudAlibaba 微服务组件 Nacos 之配置中心源码深度解析
  10. Halcon使用MeasurePos来实现检测边缘点