Java---基于json的從父類到子類的類型轉(zhuǎn)換

看到這個(gè)標(biāo)題可能就會(huì)有人問了,啊這,java怎么可能從父類轉(zhuǎn)換到子類呢,這怎么可能呢?
這不是不可能,沒錯(cuò),今天我要做一個(gè)違背祖宗的決定(bushi),教大家,怎么親手把一個(gè)父親變?yōu)閮鹤?span style="text-decoration: line-through;">(???)

眾所周知,java對(duì)象能夠轉(zhuǎn)換json的字符串,而json的字符串又可以轉(zhuǎn)換成指定java對(duì)象。
這豈不是給我們一個(gè)可乘之機(jī),既然理論存在,那么魔法開始。
以下是一對(duì)父子,


我們可以看到,Student繼承了Person,但是Student明顯不打算自力更生,直接繼承了父親而沒有做一絲改變,甚至打算自閉。做父親的不樂意了,所以這不得撬開兒子的大門(bushi)?

一個(gè)叫Main的人走了過來,看了一眼這個(gè)叫A的父親(和"他的兒子"),直接從工具箱里面掏出了Gson-2.2.4,分分鐘就把A轉(zhuǎn)換成了兒子。

卻看到了這個(gè)結(jié)果,咋費(fèi)事呢?轉(zhuǎn)換成功了,但怎么都是null?
哦,原來是沒有對(duì)school,grade兩個(gè)屬性進(jìn)行賦值,他倆都是private,咋整呢?
反射?不會(huì)吧,還有人用反射?不不不,在這種特殊情況,我們可以直接這樣。


大功告成,父親成功轉(zhuǎn)換成了兒子,并且沒有一點(diǎn)損耗。

標(biāo)簽: