@Data加在子类上,子类无法获取父类的属性
2024-10-21 03:26:31
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文件
最新文章
- cms真实问题的来源以及模拟解决方案
- php面试题及答案
- pip 安装 lxml 出错
- HTML5文件上传插件 Huploadify V2.1发布
- CentOS 6.6下Redis安装配置记录
- php格式化金额函数分享
- IBATIS动态SQL(转)
- HTML5新特性总结
- u盘安装centos
- php变量内存完全释放
- 使用jquery 1.7 及以后的版本 attr 问题
- Java面试准备之多线程
- Linux:Gentoo系统的安装笔记(二)
- .net framework 4.6 asp.net mvc 使用NLog
- Bootstrap(5)栅格系统
- 算法笔记(C++)
- Android Support Library 23.2介绍(翻译自官方文档)
- Unique constraint on single String column with GreenDao
- spring+dubbo整合
- ecshop中ajax的调用
热门文章
- CentOS 7.9 安装 redis-6.2.0
- DDD-领域驱动(四)-使用IMediator 实现领域事件
- aws上传文件、删除文件、图像识别
- java中实现File文件的重命名(renameTo)、将文件移动到其他目录下、文件的复制(copy)、目录和文件的组合(更加灵活方便)
- Codeforces Round #831 (Div. 1 + Div. 2) A-E
- select中DISTINCT的应用-过滤表中重复数据
- LoadRunner11使用代理录制脚本
- jvm之自动内存管理
- SpringCloudAlibaba 微服务组件 Nacos 之配置中心源码深度解析
- Halcon使用MeasurePos来实现检测边缘点