如何从配置中读取列表列表?

How can I read a list of lists from the config?

假设我在 config.yml 文件中有一个整数列表列表,如下所示:

numbers: [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]

我将如何阅读此内容或将其分配给变量?

我建议在 Java 中使用 .toArray() 函数。 结果,您将获得所有外部 List 元素的数组,因此在这种情况下是一个列表数组。您可以使用它进一步为变量赋值。

希望对您有所帮助。

你可以使用jyaml:

<dependency>
    <groupId>org.jyaml</groupId>
    <artifactId>jyaml</artifactId>
    <version>1.3</version>
</dependency>

java:

Map ymlFile = (Map) Yaml.load(new File("src/main/resources/config.yml"));
List<List> numberLists = (List) ymlFile.get("numbers");
for (List numberList : numberLists) {
    for (Object number : numberList) {
        System.out.println(number);
    }
}

既然你得到的是一个列表,你应该使用ConfigurationSection#getList方法。在您的案例中,这采用了路径。这个 returns 一个包含 ? 的列表,因此您应该将元素转换为整数数组。

getConfig.getList("numbers").stream().filter(o -> o instanceof List).map(o -> (List) o);

会生成 List 列表,因此您应该将其转换为 List。您可以使用我上面使用的相同过滤和转换方式。