无法为tag:yaml.org,2002exception = java.lang.InstantiationException构造Java对象:

里夫达尔:

我正在尝试使用Java读取yaml文件内容,但无法构造对象。这是StudentLast yaml文件:

year: 12 
name: fewf
group: ewf
sex: ef

这是读者代码:

public class StudentYamlReader {
    public static void main(String[] args) throws FileNotFoundException {
        StudentYamlReader c = new StudentYamlReader();
        c.write();
    }

    public void write() throws FileNotFoundException {
        Yaml yaml = new Yaml(new Constructor(StudentLast.class));
        InputStream inputStream = getClass()
                .getClassLoader()
                .getResourceAsStream("StudentLast.yaml");
        StudentLast studentLast = yaml.loadAs(inputStream,StudentLast.class);
        System.out.println(studentLast.getSex());

       // System.out.println(obj);
    }
}

这是StudentLast课:

public class StudentLast  {
    public int year;
    public String name;
    public String sex;
    public String group;

    public StudentLast(int year, String name, String sex, String group) {
        this.year = year;
        this.name = name;
        this.sex = sex;
        this.group = group;
    }
}

但是运行阅读器会引发以下异常:

Exception in thread "main" Can't construct a java object for tag:yaml.org,2002:StudentLast; exception=java.lang.InstantiationException: NoSuchMethodException:StudentLast.<init>()
 in 'reader', line 1, column 1:
    year: 12
    ^

    at org.yaml.snakeyaml.constructor.Constructor$ConstructYamlObject.construct(Constructor.java:314)
    at org.yaml.snakeyaml.constructor.BaseConstructor.constructObjectNoCheck(BaseConstructor.java:204)
    at org.yaml.snakeyaml.constructor.BaseConstructor.constructObject(BaseConstructor.java:193)
    at org.yaml.snakeyaml.constructor.BaseConstructor.constructDocument(BaseConstructor.java:159)
    at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:146)
    at org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:524)
    at org.yaml.snakeyaml.Yaml.loadAs(Yaml.java:518)
    at StudentYamlReader.write(StudentYamlReader.java:27)
    at StudentYamlReader.main(StudentYamlReader.java:19)
Caused by: org.yaml.snakeyaml.error.YAMLException: java.lang.InstantiationException: NoSuchMethodException:StudentLast.<init>()
    at org.yaml.snakeyaml.constructor.BaseConstructor.newInstance(BaseConstructor.java:277)
    at org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.construct(Constructor.java:145)
    at org.yaml.snakeyaml.constructor.Constructor$ConstructYamlObject.construct(Constructor.java:309)
    ... 8 more
Caused by: java.lang.InstantiationException: NoSuchMethodException:StudentLast.<init>()
    at org.yaml.snakeyaml.constructor.BaseConstructor.newInstance(BaseConstructor.java:307)
    at org.yaml.snakeyaml.constructor.BaseConstructor.newInstance(BaseConstructor.java:282)
    at org.yaml.snakeyaml.constructor.BaseConstructor.newInstance(BaseConstructor.java:275)
    ... 10 more

Process finished with exit code 1

为什么会出现上述错误,该如何解决?

电线:

摆脱4参数构造函数。或者..替代,添加默认构造函数。

那是你的主要问题。


也..尝试在增加一个单行TOP你的YAML文件。

!!com.rifdar.StudentLast
year: 12 
name: fewf
group: ewf
sex: ef

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法为 tag:yaml.org,2002 构造 java 对象

Xamarin Android java.lang.InstantiationException:java.lang.Class没有零参数构造函数

java.lang.InstantiationException android

java.lang.NoClassDefFoundError:org / yaml

Android通过其他类java.lang.InstantiationException中的线程调用函数:无法实例化类……没有空的构造函数

java.lang.InstantiationException:java.lang.Class<com.example.exampleproject.ExampleActivity> 没有零参数构造函数

java.lang.InstantiationException:类com.e没有零参数构造函数

原因:java.lang.InstantiationException:类com.bustracker.PostData没有零参数构造函数

java.lang.InstantiationException:类没有零参数构造函数

java.lang.InstantiationException:类没有零参数构造函数错误

异常:预期为<org.hibernate.exception.ConstraintViolationException>,但为<java.lang.NoClassDefFoundError>

java.lang.InstantiationException尽管存在NoArgsConstructor

如何解决“ java.lang.InstantiationException”?

无法解析构造函数 'Order(Java.lang.string,Java.lang.string,Java.lang.string,void,void)

java.lang.Exception:java.lang.NoClassDefFoundError:org / apache / lucene / util / OpenBitSet

无法解析构造函数'BarEntry(java.lang.String,java.lang.Float)

无法调用“ java.lang.Throwable.getStackTrace()”,因为“ exception”为空

java.lang.Exception:java.lang.ArrayIndexOutOfBoundsException:7

java.lang.IllegalArgumentException:无法将java.lang.Short字段设置为java.lang.Short

无法运行FIJI / imagej,java / lang / NoClassDefFoundError:java / lang / Object

无法将java.lang.Integer字段设置为java.lang.Integer

无法为Spring JPA从类型[java.lang.String]转换为类型[java.lang.Long]?

JPA Hibernate无法将java.lang.String字段设置为java.lang.String异常

嵌套异常为java.lang.ClassCastException:无法强制转换java.lang.String

java.lang.InstantiationException,实例化RecyclerView.ViewHolder

我得到以下原因:java.lang.InstantiationException

无法加载lang :: java :: jdt :: Java

java.lang.ClassCastException:org.apache.avro.generic.GenericData $ Record无法转换为java.lang.String

JUNIT HAMCREST无法找到符号assertThat(java.lang.Long,org.hamcrest.Matcher <java.lang.Long>)