看看下面的代码,它工作正常:如何确定物体的类型在运行时的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