0
我正在使用snakeyml讀取yml文件並將其加載到Java對象中。當構造函數參數傳遞時未創建Yaml實例
問題: 當我做Yaml yml = new Yaml()
時,創建了yml實例。但是當我傳遞構造函數參數時,不會創建yml實例。我也沒有看到一個例外。這是完整的代碼。在下面的語句
private static YamlConfig readStatsConfig()
throws IOException {
InputStream input = new FileInputStream(new File(configFile));
Constructor constructor = new Constructor(YamlConfig.class);
TypeDescription description = new TypeDescription(YamlConfig.class);
description.putListPropertyType("resources", YamlConfig.Resource.class);
constructor.addTypeDescription(description);
TypeDescription description = new TypeDescription(
YamlConfig.Resource.class);
description.putListPropertyType("stats", YamlConfig.StatsInfo.class);
constructor.addTypeDescription(description);
Yaml yaml = new Yaml(constructor);
YamlConfig cfg = (YamlConfig) yaml.load(input);
mainLogger.info(cfg);
return cfg;
}
代碼退出:
Yaml yaml = new Yaml(constructor);
你是什麼意思* 「不創建實例」 *? '新Yaml(構造函數)'將返回一個實例,否則會拋出一個異常。實際上沒有其他可能的結果*(除非JVM本身崩潰)*。 – Andreas
我的意思是代碼在語句中退出,Yaml yaml = new Yaml(構造函數)。我調試了代碼以查看語句Yaml yaml1 = new Yaml()是否工作,並且它工作正常。我認爲在創建的構造函數實例中存在一些問題,但是根據我的調試,我沒有看到任何問題。是否有任何其他建議來實現相同的功能? – curious
*「聲明中的代碼退出」*是什麼意思?由於異常,您的方法在那裏停止運行?如果是這樣,這個例外是什麼意思? – Andreas