JAXBへの要望

JavaOneの会場で耕介さんに会ったので、JAXBへの要望を伝えておきました。
要望というのは、スーパークラスがデフォルトコンストラクタを持っていない場合、サブクラスにデフォルトコンストラクタがあっても、そのサブクラスをJAXBに登録できないのをどうにかしてほしいということ。

class A{
  A(int n){ }
}
class B extends A{
  B(){ super(0); }
}

というクラスBを登録できないのですね。
そのスーパークラスを触れるときには、アノテーションをつけたりして解決できるということですが、外部ライブラリ内のクラスで触れないときにどうしたらいいかと。


イデアとしては、XMLで定義ファイルを書けるようにするという話も出たのですが、代理クラスを定義してそのクラスに設定アノテーションを書けばいいかもというアイデアを出してみました。
つまりこんな感じで。

@XmlShadowOf(A.class)
@XmlTransient
class C{
}