看看下面的代碼,它工作正常:如何確定物體的類型在運行時的Java爲GSON
MyData myData = new MyData(1, "one");
MyData myData2 = new MyData(2, "two");
MyData [] data = {myData, myData2};
String toJson = gson.toJson(data, MyData[].class);
MyData [] newData = gson.fromJson(toJson, MyData[].class);
MyData的僅僅是一個簡單的類int和字符串字段。這工作非常好。但是如果這個類直到運行時才知道呢?例如它可能不是「MyData」,但可能是一個完全不同的類。我們唯一知道的是這個類的名字(用一個字符串表示),這是以前由發件人使用Class.forName確定的。
它工作正常,如果對象不是數組,像這樣:
final Class<?> componentType = Class.forName(componentClassName);
context.deserialize(someElement, componentType);
上述技術不適用於陣列的工作,雖然。
有什麼建議嗎?
你試試這個? – 2011-02-25 23:51:27
這不會編譯。沒有這樣的方法forName只需要兩個參數。 – siiva33 2011-02-26 00:07:07