gpt4 book ai didi

Java Xml 解码类型转换

转载 作者:行者123 更新时间:2023-12-01 04:28:16 24 4
gpt4 key购买 nike

我正在使用 JAXB 来解压缩 xml 文件,这些文件可能包含不同的类型,然后是相应的类。这是一个 Range 类

@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"/>

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

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

感谢您的帮助。

最佳答案

如果将 fieldfloat 更改为 Float,您可以编写一个 XmlAdapter 来处理此用例.

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

然后您可以使用@XmlJavaTypeAdapter注释引用XmlAdapter:

@XmlAttribute
@XmlJavaTypeAdapter(MyAdapter.class)
private Float max;

关于Java Xml 解码类型转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18256273/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com