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() {}
}