1

リフレクションを使用して、jaxb-object に hashMap のデータを入力しています。@XmlElement に name 属性がある場合はそれを使用し、ない場合はフィールド名を使用します。

XmlElement anno = field.getAnnotation(XmlElement.class);
String name = anno.name();

name 属性が手動で設定されていない場合 (単純な @XmlElement アノテーションを使用した場合など)、name フィールドの値は "##default" であることがわかりました。属性が設定されているかどうかを確認するには、次のコードを使用します。

if(!"##default".equals(name)){

しかし、私はそれが受け入れられるとは思わない。どうすればもっとうまくできますか?

4

1 に答える 1

0

"##default"注釈の name プロパティの値(デフォルト)@XmlElementは、XML 要素名がフィールドから派生する必要があることを示します。したがって、あなたが持っているコードは完全に有効です:

if(!"##default".equals(name)){

ユーザーが指定できませんでした

@XmlElement(name="##default")

次の XML を取得するには:

<root>
    <##default>Hello World</##default>
</root>

Javadoc リファレンス

于 2013-06-25T13:52:40.463 に答える