如何从配置中读取列表列表?
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。您可以使用我上面使用的相同过滤和转换方式。
假设我在 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。您可以使用我上面使用的相同过滤和转换方式。