Java-读取YAML文件-线程“ main”中的异常无法在读取器中创建property = Envs

问题描述 投票:0回答:1

[加载YAML文件时(使用SnakeYAML),即时消息获取异常“线程“主”中的异常无法为JavaBean创建property=Envs=com.java.Envs@3d82c5f3在“阅读器”的第1行,第1列:信封:1)我做错了什么? -env应该从Envs的相同位置开始:?

Envs: - env: "QA" firstName: "John" lastName: "Doe" age: 31 contactDetails: - type: "mobile" number: 123456789 - type: "landline" number: 456786868 homeAddress: line: "Xyz, DEF Street" city: "City Y" state: "State Y" zip: 345657 - env: "Dev" firstName: "John" lastName: "Doe" age: 31 contactDetails: - type: "mobile" number: 123456789 - type: "landline" number: 456786868 homeAddress: line: "Xyz, DEF Street" city: "City Y" state: "State Y" zip: 345657 我具有以下用于处理此YAML的类。公共类环境{列出envList;

public List<Environment_Generic> getEnvList() {
    return envList;
}

public void setEnvList(List<Environment_Generic> envList) {
    this.envList = envList;
}

}

公共类Environment_Generic {

private String env;
private String firstName;

public String getEnv() {
    return env;
}

public void setEnv(String env) {
    this.env = env;
}

private String lastName;
private int age;
private List<Contact> contactDetails;
private Address homeAddress;

public String getFirstName() {
    return firstName;
}

public void setFirstName(String firstName) {
    this.firstName = firstName;
}

public String getLastName() {
    return lastName;
}

public void setLastName(String lastName) {
    this.lastName = lastName;
}

public int getAge() {
    return age;
}

public void setAge(int age) {
    this.age = age;
}

public List<Contact> getContactDetails() {
    return contactDetails;
}

public void setContactDetails(List<Contact> contactDetails) {
    this.contactDetails = contactDetails;
}

public Address getHomeAddress() {
    return homeAddress;
}

public void setHomeAddress(Address homeAddress) {
    this.homeAddress = homeAddress;
}

}使用以下代码,即时获取详细信息。公共静态Envs loadYAML(String file)引发IOException {

    Yaml yaml = new Yaml(new Constructor(Envs.class));
    InputStream inputStream = new FileInputStream(new File("src/main/resources/" + file));
    Envs envs = yaml.load(inputStream);
    return envs;
}

Envs envs = loadYAML(“ test1.yml”);System.out.println(envs.getEnvList()。get(0).getHomeAddress()。getCity());

java yaml
1个回答
0
投票
检查Documentation regarding typesafe collections,说明文档中的元素过多,请删除根

Envs参数。目前,您将拥有一个带有一个参数的对象,该对象将是名为EnvsEnvironment_Generic的列表。

© www.soinside.com 2019 - 2024. All rights reserved.