3

以下两种方法用于使用 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;
}

它们几乎相同,但我想不出一个聪明的方法来摆脱重复的代码。

有什么建议么?

4

2 回答 2

3

Class实现了接口Type,所以看起来只有第一种方法就足够了。

编辑:实际上看起来这些方法是单独实现的。在重构之前至少阅读javadoc以了解原因。感谢 home 指出这一点。

于 2011-08-15T15:47:03.777 回答
1

Type是由 实现的接口Class,因此您可以完全摆脱第二种方法。

于 2011-08-15T15:47:46.210 回答