QuestionsData
のリストを持つクラスがありますQuestionData
。はQuestionData
抽象クラスで、 と の 2 つの実装がTextQuestionData
ありSelectionQuestionData
ます。
問題は、 を実行した後、 のみclientResponse.getEntity
のリストを持つオブジェクトを取得することSelectionQuestionData
ですが、いくつかの質問のタイプが であることはわかっていTextQuestionData
ます。
を追加しようとしまし@XmlSeeAlso
たが、役に立ちませんでした。また、要素の順序を変更しようとしました@XmlElementRefs
が、それによりすべての質問がタイプになりTextQuestionData
ました。
これが関連しているかどうかはわかりませんが、ジャージーで使用するオブジェクトはQuestionsData
、メンバーとして持つ別の Jaxb オブジェクトです
コードは次のとおりです。
@XmlRootElement(name = "questions")
@XmlAccessorType(XmlAccessType.FIELD)
@XmlSeeAlso({SelectionQuestionData.class, TextQuestionData.class })
public class QuestionsData {
@XmlElementRefs({@XmlElementRef(type = TextQuestionData.class), @XmlElementRef(type = SelectionQuestionData.class)})
private List<QuestionData> questions;
private QuestionsData() {}
public QuestionsData(List<QuestionData> questions) {
this.questions = questions;
}
}
@XmlRootElement(name = "question")
@XmlAccessorType(XmlAccessType.FIELD)
public class TextQuestionData extends QuestionData {
@XmlElement
private String someString;
public TextQuestionData() {}
}
@XmlRootElement(name = "question")
@XmlAccessorType(XmlAccessType.FIELD)
public class SelectionQuestionData extends QuestionData {
@XmlElements({@XmlElement(name = "option")})
private List<String> options;
public SelectionQuestionData() {}
}