1

我正在使用 JAXB 解组可能包含不同类型的 xml 文件,然后是相应的类。这是一个范围类

@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "range")
public class Range {

    @XmlAttribute
    private float   min;
    @XmlAttribute
    private float   max;

    public float getMin() {
        return min;
    }

    public void setMin(float min) {
        this.min = min;
    }


    public float getMax() {
        return max;
    }

    public void setMax(float max) {
        this.max = max;
    }

}

和相应的xml文本

<range min="0" max="width"/>

如您所见,最大值不是浮点数而是字符串。我的程序或解组器应该能够处理这个问题,也许可以通过调用下面的另一个 setter 方法。这样的事情可能吗。

public void setMax(String max) {
    this.max = Constants.getValueOf(max);
}

谢谢你的帮助。

4

1 回答 1

0

如果你改变你的field从你可以写一个float来处理这个用例。FloatXmlAdapter

public class MyAdapter extends XmlAdapter<String, Float> {
    // Your logic for converting between the String and Float
}

然后你可以参考XmlAdapter使用@XmlJavaTypeAdapter注解:

@XmlAttribute
@XmlJavaTypeAdapter(MyAdapter.class)
private Float   max;
于 2013-08-15T15:55:27.550 回答