3

次の 2 つの方法は、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 を読んで理由を理解してください。これを指摘してくれたホームに感謝します。

于 2011-08-15T15:47:03.777 に答える
1

Typeは によって実装されるインターフェイスClassであるため、2 番目のメソッドを完全に取り除くことができます。

于 2011-08-15T15:47:46.210 に答える