我正在尝试用Java反序列化我在YAML中组合在一起的2D数组。为此,我使用了Yamlbeans库。
这是我的YAML:
states:
- 0:
- name: SPAWNINGSTATE
duration: 4这是我的课程:
public class State {
public String name;
public long duration;
public State(){}
public State(String name, long duration){
this.name = name;
this.duration = duration;
}
}数组在另一个类中声明,只有一行:
public State[][] states;下面是我得到的错误:
com.esotericsoftware.yamlbeans.YamlReader$YamlReaderException: Line 57, column 5: Error creating object.
at com.esotericsoftware.yamlbeans.YamlReader.readValueInternal(YamlReader.java:266)
at com.esotericsoftware.yamlbeans.YamlReader.readValue(YamlReader.java:152)
at com.esotericsoftware.yamlbeans.YamlReader.readValueInternal(YamlReader.java:335)
at com.esotericsoftware.yamlbeans.YamlReader.readValue(YamlReader.java:152)
at com.esotericsoftware.yamlbeans.YamlReader.readValueInternal(YamlReader.java:295)
at com.esotericsoftware.yamlbeans.YamlReader.readValue(YamlReader.java:152)
at com.esotericsoftware.yamlbeans.YamlReader.read(YamlReader.java:103)
at com.esotericsoftware.yamlbeans.YamlReader.read(YamlReader.java:90)
at com.sbg.wickedtemplate.layers.ForegroundLightning.<init>(ForegroundLightning.java:22)
at com.sbg.wickedtemplate.World.<init>(World.java:25)
at com.sbg.wickedtemplate.LWP_Engine.create(LWP_Engine.java:39)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:136)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:114)
Caused by: java.lang.reflect.InvocationTargetException: Unable to find a no-arg constructor for class: [Lcom.sbg.wickedtemplate.State;
at com.esotericsoftware.yamlbeans.Beans.createObject(Beans.java:111)
at com.esotericsoftware.yamlbeans.YamlReader.createObject(YamlReader.java:363)
at com.esotericsoftware.yamlbeans.YamlReader.readValueInternal(YamlReader.java:264)我在制作常规数组时没有任何问题。为什么它告诉我它找不到一个无参数的构造函数,而它显然就在那里?我做错了什么?
发布于 2016-02-22 20:37:32
你能试着修复你的一个节点吗?
states:
0:
name: SPAWNINGSTATE
duration: 4"-“使它成为一个数组,它可能会抛出它。
https://stackoverflow.com/questions/23299444
复制相似问题