继承之后调用子类的toString方法为什么不会输出父类属性?

引用lombok插件之后,实体类的编写就变得简单了,只需要给实体类加个@Data注解,就不需要我们再书写get、set、tostring等方法了。因为@Data帮我们都加好了。


image.png

今天写多表查询时用到了一个实体类继承另一个实体类,按理说如果有toString方法那么输出子类的对象就会输出所有的变量,包括父类的。但是我测试时控制台却只输出了子类的变量。

挣扎了一段时间后终于发现是lombok的问题:@Data修饰注解包含了getter,setter,tostring,所以此处的tostring如果不设置参数的话,打印string的时候只会包含子类的属性
解决:在@Data的基础上再加一个@ToString(callSuper = true)注解,callSuper = true即解决缺少父类属性的问题。

参考:https://blog.csdn.net/wwrzyy/article/details/85090214

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容