Загрузить объект с помощью Gson

Простите меня, если это тривиально или невозможно, но у меня сегодня утром понедельник.

Я хотел бы создать метод, реализующий некоторые методы из библиотеки Gson для загрузки некоторых объектов настроек. По сути, у меня есть куча разных объектов настроек, но я не хочу переопределять метод загрузки для каждого класса, чтобы я хотел иметь что-то вроде:

public class ConfigLoader {
    public static void main(final String[] args) {   
        final ConfigurationSettings loadedConfigSettigs =
            load("testSettings.json", ConfigurationSettings.class);

        final AlternativeConfigurationSettings alternativeConfigSettigs =
            load("testSettings2.json", AlternativeConfigurationSettings .class);
    }

    public T load(final InputStream inputStream, final Class<T> clazz) {
        try {
            if (inputStream != null) {
                final Gson gson = new Gson();
                final BufferedReader reader =
                    new BufferedReader(new InputStreamReader(inputStream));
                return gson.fromJson(reader, clazz);
            }
        } catch (final Exception e) {
        }
        return null;
    }
}

где я могу передать InputStream и класс объекта, который я хочу вернуть. Есть ли простой способ сделать это (я не хочу создавать метод для каждого класса, который я хочу загрузить, и я не хочу создавать отдельный загрузчик для каждого класса)?

6
задан Sonoman 5 March 2012 в 12:58
поделиться