讓我們說,我有一個通常叫做Person
的POJO。現在,由於類型擦除,ArrayList<Person>
的實例在運行時將具有類型ArrayList
。如果這個實例通過像Gson這樣的庫進行序列化/反序列化,那麼desirialized對象不是ArrayList<Person>
,除非我們特別提供類型標記。
現在,這是問題。如果我創建另一個類,會發生什麼(比如Persons
)如下:如果我從泛型類派生非泛型類,會發生什麼類型?
public class Persons extends ArrayList<Person> {
}
將類型信息被保存在這裏?反序列化機制能夠推斷出類型確實是ArrayList<Person>
而不是原始類型ArrayList
?
我認爲desirialization會給你類型信息,你可以直接轉換爲'Person' – Babel
嘗試序列化和反序列化它,也許? –
我不知道我理解你的問題。如果反序列化一個Persons對象,那麼它不是它的類Persons而不是ArrayList或ArrayList? –
sprinter