私は2つのクラスを持っています
class First{
private Date date;
public Date getDate(){
return date;
}
...
}
と
class Second extends First{
@XmlAttribute
@XmlJavaTypeAdapter(value = DateAdapter.class, type = Date.class)
public Date getDate() {
return super.getDate();
}
}
DateAdapter は Date を Long に変換し、元に戻すだけです。
Second クラスのインスタンスをシリアル化していますが、DateAdapter が無視されているようです。つまり、長い表現ではなく、文字列「2013-05-22T13:32:40.664」を取得します。
@XmlJavaTypeAdapter アノテーションを First クラスに移動すると問題なく動作しますが、First を変更できないという問題があり、それが基本的にラッパー クラス Second を作成した理由です。
XmlJavaTypeAdapter を認識させるにはどうすればよいですか?