如何重构这些包装器方法以摆脱重复的代码?

时间:2011-08-15 15:43:06

标签: java refactoring gson code-duplication

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

它们几乎完全相同,但我无法找到一种聪明的方法来摆脱重复的代码。

有什么建议吗?

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

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

相关问题