我的Yaml文件看起来类似于seq: [0, 0.23, 0.45, 0.67]
Snakeyaml将yaml序列解析为具有以下值的ArrayList:
[0]: 0 (Integer)
[1]: 0.23 (Double)
[2]: 0.45 (Double)
[3]: 0.67 (Double)
我需要所有这些值的类型均为
Double
,以便使用Double[]
将列表转换为list.toArray(new Double[])
,否则将引发ArrayStoreException
,因为Integer
与Double
的类型不同。ArrayList<Object>
转换为我错过的Double[]
的可接受方法? 附加信息
使用的Snakeyaml版本是1.17。
我这样创建Snakeyaml实例:
private Yaml createYamlInstance() {
DumperOptions dumperOptions = new DumperOptions();
dumperOptions.setDefaultFlowStyle(FlowStyle.AUTO);
return new Yaml(dumperOptions);
}
编辑
我看过documentation,但是看不到example中默认的隐式类型如何更改。
最佳答案
根据此文档,数字解析是通过以下格式完成的:
http://symfony.com/doc/current/components/yaml/yaml_format.html#numbers
也许将0更改为0.00就足够了。
或者,如果无法更改格式,也许您可以在分析文档后使用之前强制转换ArrayList成员?