2

ブール値を返す複雑なメソッドを持つクラスがあります(このフィールドのプロパティフィールドまたはセッターは提供されていません)。メソッドの結果が XML 要素/属性にマーシャリングされ、アンマーシャリング時に省略されるように、このクラスを JiBX にバインドする必要があります。だから私はこのようなものを取得したい:

<mapping name="freak" class="com.test.Freak">
    <namespace uri="http://www.test.com/schemas/test" default="elements" />
    <value name="id" field="id" style="attribute"/>
    <value name="real-freak" get-method="isRealFreak" style="attribute" usage="optional" />        
</mapping>

PSこのクラスを修正してスタブセッターを追加することはできません。そのまま使用する必要があります。

4

1 に答える 1

5

ブール値 (プリミティブ) には常に値があるため、ブール値 (null を許可する) に切り替えない限り、これは不可能です。

唯一の解決策は、出力専用バインディングを持つことです。

<binding ... direction="output">

これにより、バインディングが一方向になることが保証されます。とにかくその値を設定するメカニズムがないため、問題ないと思います。両方の方向が必要で、クラスを変更できない場合は、クラスを拡張してブール値を使用し、別の入力専用バインディングを使用する必要があります。

于 2011-02-08T04:12:29.430 に答える