JiBX仅使用getter绑定值

时间:2009-10-17 12:38:06

标签: jibx

我有一个带有复杂方法的类,它返回boolean(没有提供此字段的属性字段或setter)。我需要将此类与JiBX绑定,因此该方法的结果将被编组为XML元素/属性,并且在解组时将被省略。所以我希望得到这样的东西:

<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>

P.S。我无法修复此类以添加存根setter,需要按原样使用它。

1 个答案:

答案 0 :(得分:5)

因为布尔值(基元)总是有值,所以这是不可能的,除非你切换到布尔值(允许为空)。

您唯一的解决方案是拥有仅输出绑定:

<binding ... direction="output">

这将确保绑定是一种方式,我猜你没关系,因为你没有任何机制来设置该值。如果您需要两个方向并且无法修改类,则需要扩展类并使用布尔值并使用单独的仅输入绑定。