我有一个嵌套子类的类
let loginParams: [String: AnyObject] = [
"userName": String(uname) ,
"password" : String(pwd),
"deviceInfo": deviceInfoObj
]
我想在不同情况下反序列化到不同版本的GenericClassHolder。目前我有
public class OuterClass {
class GenericClassHolder<R> {
@SerializedName("results")
List<R> results;
public GenericClassHolder() {}
public List<R> getResults() {
return results;
}
}
class ExampleClassA {
@SerializedName("A")
int a;
public ExampleClassA() {}
public int getA() {return a;}
}
class ExampleClassB {
@SerializedName("B")
String b;
public ExampleClassA() {}
public String getB() {return b;}
}
}
这似乎没有破坏任何东西,但是当我到达以下行时
public <T> OuterClass.GenericClassHolder<T> parseJson(final String responseStr, final Class<T> responseClass) throws JsonSyntaxException {
return Gsons.getInstance().fromJson(responseStr, new TypeToken<OuterClass.GenericClassHolder<T>>() {
}.getType());
}
String jsonString = "{results:[{A:4}]}";
OuterClass.GenericClassHolder<OuterClass.ExampleClassA> ex = parseApiResponse(jsonString, OuterClass.ExampleClassA.class);
我收到错误
线程中的异常&#34; main&#34; java.lang.ClassCastException:com.google.gson.internal.LinkedTreeMap无法强制转换为OuterClass $ ExampleClassA
如何实现能够解析包含参数化类型列表的模板化类的目标?
- 我正在使用Java 7。