我测试 SnakeYAML 库以读取 .yaml 文档。我已阅读示例 2.27。来自http://yaml.org/spec/1.1/的发票,我得到了对象:
System.out.println(content);
Yaml yaml = new Yaml();
Object o = yaml.load(content);
其中内容是使用 Files.readAllBytes、encoding.decode 从文件加载的字符串(编码为 StandardCharsets.UTF_8)
反射让我知道 o 是 java.util.LinkedHashMap 的类型,我可以遍历它们:
Set entrySet = o.entrySet();
Iterator it = entrySet.iterator();
System.out.println("LinkedHashMap entries : ");
while (it.hasNext())
{
Object entry = it.next();
System.out.println(entry);
}
反射返回的条目类型是 LinkedHashMap$Entry。但问题是:内部类 LinkedHashMap$Entry 是私有的,我不能声明这种类型的对象。如何从条目、迭代器或 entrSet 中获取对?