我需要知道是否可以執行以下操作。我需要通過tcp傳遞一些對象。我選擇使用Gson將它們轉換爲JSON。但是這個對象可以有不同的類型。主要我有:獲取對象的類別
public class NetMessage {
public int code;
public Object obj;
}
有code
和一個對象,它可以有不同的類類型。如何在轉移到初始類型後重建對象?
測試:
public static void main(String[] args) {
Gsonizer gs = new Gsonizer();
Invoice v = new Invoice(123, 123, 10.1);
NetMessage nm = new NetMessage(2, v);
String s = (String) gs.toNet(nm);
NetMessage nm2 = (NetMessage) gs.fromNet(s);
System.out.println("> " +nm2.code);
System.out.println("> " +(Object)nm2.obj.getClass()); <<<<<<<< *
}
我*
標誌着一個完全不同的類型,它是從GSON一個內部類的lib它打印: 類com.google.gson.internal.LinkedTreeMap
我又怎麼能做到,我重建對象到它的初始類型。
編輯: GSON反序列化代碼:
public Object fromNet(String obj){
return gsonizer.fromJson(obj, NetMessage.class);
}
向我們展示Gson反序列化代碼... –
似乎仿製藥將符合法案。 'NetMessage'。 –
aliteralmind
有沒有反思的方法? –