Простите меня, если это тривиально или невозможно, но у меня здесь есть утренний понедельник.Загрузите объект, используя Gson
Я хотел бы создать метод, который реализует некоторые методы из библиотеки Gson
для загрузки некоторых параметров объектов. В принципе, у меня есть куча разных настроек объектов, но я не хочу Habe переопределить метод загрузки для каждого класса я хотел бы иметь что-то вроде:
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
и класс объекта, который я хочу вернуть. Есть ли простой способ сделать это (я не хочу создавать метод для каждого класса, который я хочу загрузить, а также не хочу, чтобы я создал конкретный загрузчик для каждого класса)?
В чем проблема? Единственное, что неверно в вашем коде, это набирать Object, потому что оно не является «типичным». Вместо этого вы должны вернуться непосредственно T. –
Спасибо за указание, что недосмотр. Я внесла поправки в код и дал ему еще один контекст, чтобы показать, как я хотел бы его использовать. Мне хотелось бы иметь один загрузчик, который загружает объект, переданный ему классу, без необходимости создавать загрузчик для каждого класса (как мне пришлось бы использовать метод класса)? –
ОК, но это работает, правильно (кроме того, что вы передаете строку вместо InputStream, но мы получаем вашу точку)? (или расскажите, какая у вас проблема). Я не вижу никаких проблем в том, что вы пытаетесь сделать, и о том, как вы это делаете. Итак, что вас блокирует? –