我正在尝试使用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)