我有這樣一組抽象類:反序列化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