【发布时间】:2017-07-21 13:39:32
【问题描述】:
我正在尝试使用snakeyaml 将下面的YAML 反序列化到下面的域模型中,但是我不断收到java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to ConfigurableThing。
请注意,我能够成功反序列化单个 ConfigurableThing,只有在尝试反序列化我遇到问题的 ConfigurableThing 列表时。
要反序列化的代码
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);
}
YAML
things:
- type: TYPE1
name: foo
value: 2.00
- type: TYPE2
name: bar
value 8.00
型号
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
}
【问题讨论】: