小编J R*_*J R的帖子

包含对象列表的 SnakeYaml 反序列化类

我正在尝试使用snakeyaml将下面的YAML反序列化到下面的域模型中,但是我不断收到java.lang.ClassCastException:java.util.LinkedHashMap无法转换为ConfigurableThing。

注意我能够成功反序列化单个 ConfigurableThing,只有在尝试反序列化我遇到问题的 ConfigurableThings 列表时。

反序列化代码

File file = new File(classLoader.getResource("config.yml").getFile());

        try(InputStream in = new FileInputStream(file)){
            Yaml yaml = new Yaml();
            Configuration config = yaml.loadAs(in,Configuration.class);
        }
Run Code Online (Sandbox Code Playgroud)

YAML

things:
 - type: TYPE1
   name: foo
   value: 2.00
 - type: TYPE2
   name: bar
   value 8.00
Run Code Online (Sandbox Code Playgroud)

模型

public final class Config {

    private List<ConfigurableThing> things;

    //Getter and Setter

}

public final class ConfigurableThing {

    private Type type;

    private String name;

    private BigDecimal value;

    //Getters and Setters
}

public enum Type {
    TYPE1,TYPE2
}
Run Code Online (Sandbox Code Playgroud)

yaml snakeyaml

2
推荐指数
1
解决办法
4811
查看次数

标签 统计

snakeyaml ×1

yaml ×1