Как я могу реорганизовать эти методы-обертки, чтобы избавиться от дублированного кода? - PullRequest
3 голосов
/ 15 августа 2011

Следующие два метода используются для переноса десериализации с помощью 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 ]

3 голосов
/ 15 августа 2011

Class реализует интерфейс Type, поэтому похоже, что достаточно иметь только первый метод.

РЕДАКТИРОВАТЬ: на самом деле похоже, что эти методы реализованы отдельно по причине. По крайней мере, прочитайте javadoc , чтобы понять, почему перед рефакторингом. Спасибо дому за указание на это.

1 голос
/ 15 августа 2011

Type - это интерфейс, реализованный Class, поэтому вы можете полностью избавиться от второго метода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...