я только начал использовать JAXB для вывода XML из объектов java. В моих классах Java существует полиморфизм, который, похоже, не работает в JAXB.
Ниже показано, как я пытался с этим справиться, но в выводе я не ожидал field: fieldA или fieldB.
@XmlRootElement(name = "root")
public class Root {
@XmlElement(name = "fieldInRoot")
private String fieldInRoot;
@XmlElement(name = "child")
private BodyResponse child;
// + getters and setters
}
public abstract class BodyResponse {
}
@XmlRootElement(name = "ResponseA")
public class ResponseA extends BodyResponse {
@XmlElement(name = "fieldA")
String fieldB;
// + getters and setters
}
@XmlRootElement(name = "ResponseB")
public class ResponseB extends BodyResponse {
@XmlElement(name = "fieldB")
String fieldB;
// + getters and setters
}
Прежде чем я начну придумывать сложные наследования, есть ли хороший подход для этого?