【问题标题】:Can't construct a java object for tag:yaml.org,2002无法为 tag:yaml.org,2002 构造 java 对象
【发布时间】:2019-07-13 09:00:09
【问题描述】:

我正在尝试使用 java 代码读取 yaml 文件内容,但无法使用 java 模型类构造 java 对象

请找到我的person.yaml 文件

name: Joe
phone: 111-111-11111
address: Park Dr, Charlie Hill

请找到我的模型类

public class Person {

      private String name;
      private String phone;
      private String address;

}

请找我的服务方式:

public class PersonsService {

    public static void main(String args[]) throws IOException {

         Yaml yaml = new Yaml();
          try (InputStream in = PersonsService.class
                  .getResourceAsStream("person.yaml")) {
              Person person = yaml.loadAs(in, Person.class);
              System.out.println(person);
          }

    }

}

我收到以下错误:

Exception in thread "main" Can't construct a java object for tag:yaml.org,2002:com.javaproject.snakeyaml.model.Person; exception=Cannot create property=name for JavaBean=com.javaproject.snakeyaml.model.Person@77a567e1; No JavaBean properties found in com.javaproject.snakeyaml.model.Person

在“阅读器”第 1 行第 1 列中: 姓名:乔 ^

【问题讨论】:

  • 错误是什么?
  • @michalk - 我已经更新了错误
  • Person 类创建 getter 和 setter - 阅读错误。
  • @Karthikeyan 阅读 Java Beans(在错误中提到)也会有所帮助。

标签: java yaml


【解决方案1】:

错误说明了一切:

无法为 tag:yaml.org,2002:com.javaproject.snakeyaml.model.Person 构造 java 对象 ...在 com.javaproject.snakeyaml.model.Person 中找不到 JavaBean 属性

所以您必须为您的Person 类提供getter 和setter,以便库将使用它们为您的Person 类对象设置值。有关 JavaBeans 属性的更多信息,请参阅here

【讨论】:

    猜你喜欢
    • 2011-06-26
    • 1970-01-01
    • 2020-01-17
    • 2021-06-11
    • 1970-01-01
    • 2021-03-09
    • 2018-03-03
    • 2022-06-16
    • 2020-01-06
    相关资源
    最近更新 更多