如何从 YAMLConfiguration 中读取列表

How to read a list from a YAMLConfigutation

我有一个如下所示的 YAML 文件:

foo:
  bar:
    - entry1: 1
      entry2: a
    - entry1: 2
      entry2: b

(实际列表要长得多。)我正在使用 Apache Configuration2 的 YAMLConfiguration 阅读此文件。我可以看到 Apache Configuration2 中使用的内部数据结构中的数据,但我不知道如何得到这个列表。我实际上有一个 class 匹配列表元素的结构,这是我真正想读入的内容:

class MyListEntry {
    public int entry1;
    public String entry2;
}

如何将数据 YAMLConfiguration 放入 List<MyListEntry>

这是我找到的解决方案(注意这适用于任何 HierarchicalConfiguration,而不仅仅是 YAMLConfiguration

// this will return a list of List<HierarchicalConfiguration<ImmutableNode>>, one entry for each element of the list
var subConfigList = hierarchicalConfig.configurationsAt("foo.bar");

List<MyListEntry> myListEntries = new ArrayList<>(subConfigList.size());
// iterate over the subconfigs and pull out the specific values of interest
for(var subConfig : subconfigs) {
    MyListEntry myListEntry = new MyListEntry();
    myListEntry.entry1 = subConfig.getInt("entry1");
    myListEntry.entry2 = subConfig.getString("entry2");
    myListEntries.add(myListEntry);    
}