請原諒我,如果這是微不足道的或不可能的,但我在這裏有星期一早上的時刻。使用Gson加載對象
我想創建一個方法,實現一些方法從Gson
庫加載一些設置對象。基本上,我有一堆不同的設置對象,但我不想HABE覆蓋每個類的load方法我想有這樣的:
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。 – 2012-03-05 12:44:50
感謝您指出這種疏忽。我修改了代碼並給出了更多的上下文來展示我想如何使用它。我基本上希望有一個加載器,在給定類傳遞給它的情況下加載一個對象,而不必爲每個類創建一個加載器(因爲我不得不使用'Class'方法)? –
2012-03-05 12:57:23
好的,但這個工程,對(除了你傳遞一個字符串,而不是一個InputStream,但我們明白你的觀點)? (或者告訴我們你有什麼問題)。我沒有看到你想要做什麼以及你怎麼做的問題。那麼,什麼阻止了你? – 2012-03-05 13:03:01