从YAML到Java的二维对象数组

从YAML到Java的二维对象数组,java,arrays,yaml,Java,Arrays,Yaml,我正在尝试用Java反序列化一个2D数组,我把它放在YAML中。我用Yamlbeans库来做这个 这是我的YAML: states: - 0: - name: SPAWNINGSTATE duration: 4 这是我的班级: public class State { public String name; public long duration; public State(){} public State(String name, long

我正在尝试用Java反序列化一个2D数组,我把它放在YAML中。我用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)
com.esotericsoftware.yamlbeans.YamlReader$YamlReaderException:第57行第5列:创建对象时出错。
位于com.esotericsoftware.yamlbeans.YamlReader.readValueInternal(YamlReader.java:266)
位于com.esotericsoftware.yamlbeans.YamlReader.readValue(YamlReader.java:152)
位于com.esotericsoftware.yamlbeans.YamlReader.readValueInternal(YamlReader.java:335)
位于com.esotericsoftware.yamlbeans.YamlReader.readValue(YamlReader.java:152)
位于com.esotericsoftware.yamlbeans.YamlReader.readValueInternal(YamlReader.java:295)
位于com.esotericsoftware.yamlbeans.YamlReader.readValue(YamlReader.java:152)
位于com.esotericsoftware.yamlbeans.YamlReader.read(YamlReader.java:103)
位于com.esotericsoftware.yamlbeans.YamlReader.read(YamlReader.java:90)
位于com.sbg.wickedtemplate.layers.ForegroundLightning.(ForegroundLightning.java:22)
在com.sbg.wickedtemplate.World.(World.java:25)
位于com.sbg.wickedtemplate.LWP_Engine.create(LWP_Engine.java:39)
位于com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:136)
位于com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:114)
原因:java.lang.reflect.InvocationTargetException:找不到类[Lcom.sbg.wickedtemplate.State]的无参数构造函数;
位于com.esotericsoftware.yamlbeans.Beans.createObject(Beans.java:111)
位于com.esotericsoftware.yamlbeans.YamlReader.createObject(YamlReader.java:363)
位于com.esotericsoftware.yamlbeans.YamlReader.readValueInternal(YamlReader.java:264)

我在创建常规数组时没有遇到任何问题。为什么它告诉我它找不到无参数构造函数,而它显然在那里?我做错了什么?

你能尝试修复一个节点吗

    states:
       0:
         name: SPAWNINGSTATE
         duration: 4
“-”使其成为一个数组,可能会被丢弃