我发现了一些关于使用JAXB(http://blog.bdoughan.com/2011/05/jaxb-and-interface-fronted-models.html)保存接口的文章,但如果不知道正在实现它的类,有没有办法保存接口?或者如果那个班级有所不同我的意思是,这似乎是界面的重点......
例如,假设班级A
有一个使用接口I
的变量,该变量在B
,C
和D
中实现(如下所示)我想保存一个类A
的实例。请注意,需要保存的字段不会在界面中声明:
public interface I {
public void getMagicNumber();
}
public class A { //<--- Root element
I interface;
public void setI(I i) {
this.interface = i;
}
}
public class B implements I {
private magicNumber = 0; // Needs to be saved by JAXB
public void setMagicNumber(int i) {
this.magicNumber = i;
}
@Override
public int getMagicNumber() {
return magicNumber
}
}
public class C implements I {
@Override
public int getMagicNumber() {
return [generate random number]
}
}
public class D implements I {
public int n1; //Needs to be saved by JAXB
public int n2; //Needs to be save by JAXB
@Override
public int getMagicNumber() {
return n1*n2;
}
}