我有这样一组抽象类:反序列化XML动态创建的类在Java中
abstract class A {
public abstract B getB() {return this.b;}
public abstract void setB(B b) {this.b = b;}
}
abstract class B {
public abstract C getC() {return this.c;}
public abstract void setC(C c) {this.c = c;}
}
abstract class C {
private String foo;
public String getFoo() {return this.foo;}
public void setFoo(String foo) {this.foo = foo;}
}
在运行时,我创建了使用ByteBuddy这些类代理。我可以轻松地将这些代理类的对象序列化为XML。但是当我试图反序列化XML时,JAXB会抛出javax.xml.bind.UnmarshalException: Unable to create an instance of A
,因为它无法创建抽象类的实例。我想告诉它如何在运行时创建这些实例以反序列化它们(我有一个特殊的Spring bean,这是它 - 所以我需要能够注入它,无论我在哪里定义创建逻辑)我看着JAXB和Jackson ,但无法找到如何去做。
有没有办法做到这一点?我没有被绑定到任何序列化框架,尽管最好留在JAXB或者杰克逊。
你能展示一个样本xml吗? – Ishnark