Java之注解@Data和@ToString(callSuper=true)解讀
問(wèn)題復(fù)現(xiàn)
@Data public class People { private String height; private String weight; }
@Data public class Student extends People { private String name; }
public class Test { public static void main(String[] args) { Student student = new Student(); student.setHeight("180cm"); student.setWeight("65kg"); student.setName("Jack"); System.out.println(student.toString()); } }
運(yùn)行代碼后,打印如下:
Student(name=Jack)
Root Cause
如果domain中沒(méi)有重寫(xiě)toString, 且使用了@Data注解, 調(diào)用toString時(shí)只會(huì)打印子類(lèi)本身的屬性值, 如果想要打印父類(lèi)的屬性:
- 方式一:重寫(xiě)tostring
- 方式二:子類(lèi)加上@Data和@ToString(callSuper = true)兩個(gè)注解, 父類(lèi)也使用注解@Data
解決方案
@Data @ToString(callSuper = true) public class Student extends People { private String name; }
行代碼后,打印如下:
Student(super=People(height=180cm, weight=65kg), name=Jack)
lombok 使用@Data時(shí)會(huì)重寫(xiě)toString(),查看@Data源代碼;
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
從零開(kāi)始讓你的Spring?Boot項(xiàng)目跑在Linux服務(wù)器
這篇文章主要給大家介紹了如何從零開(kāi)始讓你的Spring?Boot項(xiàng)目跑在Linux服務(wù)器的相關(guān)資料,由于springboot是內(nèi)嵌了tomcat,所以可以直接將項(xiàng)目打包上傳至服務(wù)器上,需要的朋友可以參考下2021-11-11Java實(shí)現(xiàn)FTP批量大文件上傳下載篇1
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)FTP批量大文件上傳下載的基礎(chǔ)篇,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-08-08redis 使用lettuce 啟動(dòng)內(nèi)存泄漏錯(cuò)誤的解決方案
這篇文章主要介紹了redis 使用lettuce 啟動(dòng)內(nèi)存泄漏錯(cuò)誤的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-04-04Java數(shù)據(jù)結(jié)構(gòu)之鏈表實(shí)現(xiàn)(單向、雙向鏈表及鏈表反轉(zhuǎn))
這篇文章主要給大家介紹了關(guān)于Java數(shù)據(jù)結(jié)構(gòu)之鏈表實(shí)現(xiàn)的相關(guān)資料,其中包括單向鏈表、雙向鏈表及鏈表反轉(zhuǎn)的實(shí)現(xiàn)代碼,需要的朋友可以參考下2021-06-06如何解決創(chuàng)建maven工程時(shí),產(chǎn)生“找不到插件的錯(cuò)誤”問(wèn)題
這篇文章主要介紹了如何解決創(chuàng)建maven工程時(shí),產(chǎn)生“找不到插件的錯(cuò)誤”問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12