通过 YAML 文件加载基于抽象类的对象

问题描述

我想从 yaml 文件中加载包含基于抽象类的对象数组列表的对象。我收到此错误消息:

线程“LWJGL 应用程序”中的异常无法为 JavaBean=com.myyaml.test.ImplementationOfExampleClass@7a358cc1 创建 property=arrayListOfAbstractObjects

在“读者”中,第 1 行,第 1 列: dummyLong: 1 ^

java.lang.InstantiationException 在“读者”中,第 3 行,第 3 列: - dummyFloat:444 ^

YAML 文件

Text

Java 类:

dummyLong: 1
arrayListOfAbstractObjects:
  - dummyFloat: 444
  - dummyDouble: 123
public abstract class ExampleClass {
    protected ArrayList<AbstractClass> arrayListOfAbstractObjects;
    protected long dummyLong = 111;
    
    public ExampleClass() {
    }

    public void setArrayListOfAbstractObjects(ArrayList<AbstractClass> arrayListOfAbstractObjects) {
        this.arrayListOfAbstractObjects = arrayListOfAbstractObjects;
    }

    public void setDummyLong(long dummyLong) {
        this.dummyLong = dummyLong;
    }
}
public class ImplementationOfExampleClass extends ExampleClass {
    
    public ImplementationOfExampleClass() {
    }
}
public abstract class AbstractClass {
    private int dummyInt = 22;
    
    public AbstractClass() {
    }

    public void setDummyInt(int dummyInt) {
        this.dummyInt = dummyInt;
    }
}
public class FirstImplementationOfAbstractClass extends AbstractClass {
    float dummyFloat = 111f;
    
    public FirstImplementationOfAbstractClass() {
    }

    public void setDummyFloat(float dummyFloat) {
        this.dummyFloat = dummyFloat;
    }
}

我的猜测是 yaml 不知道要使用哪种抽象类实现。 FirstImplementationOfAbstractClass 或 SecondImplementationOfAbstractClass。是否可以使用此类类通过 yaml 加载对象?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)