以下两种方法用于使用Google Gson包装反序列化:
public static <T> T Deserialize(String jsonData, Type t) {
T obj = null;
try {
obj = new Gson().fromJson(jsonData, t);
} catch (Exception e) {
Log.e(DEBUG_TAG, e.getMessage());
}
return obj;
}
public static <T> T Deserialize(String jsonData, Class<T> toClass) {
T obj = null;
try {
obj = new Gson().fromJson(jsonData, toClass);
} catch (Exception e) {
Log.e(DEBUG_TAG, e.getMessage());
}
return obj;
}
它们几乎完全相同,但我无法找到一种聪明的方法来摆脱重复的代码。
有什么建议吗?
答案 0 :(得分:3)
Class
实现了接口Type
,所以看起来只有第一种方法就足够了。
编辑:实际上看起来这些方法是出于某种原因单独实现的。至少阅读the javadoc以了解重构之前的原因。感谢家里指出这一点。
答案 1 :(得分:1)
Type
是由Class
实现的接口,因此您可以完全摆脱第二种方法。