我有三個(gè)類UserMini,User和Reply。用戶擴(kuò)展UserMini,并在回復(fù)中包含一個(gè)UserMini對象以及內(nèi)容和其他信息。在Reply類中創(chuàng)建UserMini(this.user)對象,如下所示:private void getUserObject () { this.user = (UserMini)new User(email, fname, lname, userid...);}UserMini類僅存儲(chǔ)用戶的fname和lname。我要執(zhí)行以下操作:返回帶有所有信息的Reply類的JSON值。我在答復(fù)類中使用以下代碼來做到這一點(diǎn):@Overridepublic String toString() { return new Gson().toJson(this);}這樣做很好,存儲(chǔ)在Reply對象中的所有內(nèi)容的JSON映射。但是對于Reply的UserMini對象,輸出以下值:user: accessToken: "0", email: "email@gmail.com", firstName: "FirstName", lastName: "LastName", picturePath: "Pic_path", refreshToken: "0", userId: "2"如您所見,我將父對象存儲(chǔ)在Reply類中,盡管如此,Gson仍輸出子對象的屬性。我想避免使用Gson適配器,還有其他方法可以使Gson輸出MiniUser Object的以下值:user: firstName: "FirstName", lastName: "LastName"
1 回答

慕桂英4014372
TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超13個(gè)贊
Gson
正在使用getClass(
)方法確定對象的類型。反射是運(yùn)行時(shí)。getClass()
返回對象的實(shí)際類型運(yùn)行時(shí),而不是最初聲明的變量的靜態(tài)類型。強(qiáng)制轉(zhuǎn)換不會(huì)更改變量類型,只是告訴編譯器將變量視為其他類型。編譯強(qiáng)制轉(zhuǎn)換丟失后,已編譯的程序?qū)]有有關(guān)代碼中強(qiáng)制轉(zhuǎn)換的信息。
添加回答
舉報(bào)
0/150
提交
取消