我的函数之一是获取类型变量。java.util.List<Test$MyClass>
有时可能是java.util.List<java.lang.String>
这样我如何识别它们?
if (type instanceof List) {
}
两者都是列表类型,但类型不同。所以上面的代码不起作用。我想区分这两种列表类型。
我正在使用deserializer
它..
public class Data implements JsonDeserializer<ArrayList<MyClass1>> {
public ArrayList<MyClass1> myList1 = new ArrayList<MyClass1>();
public ArrayList<MyClass2> myList2 = new ArrayList<MyClass2>();
@Override
public ArrayList<MyClass1> deserialize(JsonElement json, Type type,
JsonDeserializationContext context) throws JsonParseException {
Debug.e("", type.toString());
ArrayList<Layoutmap> data = new ArrayList<Layoutmap>();
try {
if (json.isJsonObject()) {
// my stuff
return data;
} else {
return new Gson().fromJson(json, type);
}
} catch (Exception e) {
e.printStackTrace();
}
return data;
}
}
上面的代码适用于public ArrayList<MyClass2> myList2 = new ArrayList<MyClass2>();
并且myList2
我也想反序列化..它是 google Gson的一部分。