Я использую JAXB для файлов unmarsh xml, которые могут содержать разные типы, а затем соответствующие классы. Вот диапазон классJava Xml Unmarshing typecast
@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"/>
Итак, как вы видите, максимальное значение не является поплавок, но строка. Моя программа или unmarshaller должны иметь возможность справиться с этим, возможно, вызывая другой метод setter, как показано ниже. Это возможно.
public void setMax(String max) {
this.max = Constants.getValueOf(max);
}
Спасибо за любую помощь.
ли вы запустить это? Должно быть, это сработало. В противном случае, да, вы можете аннотировать ваши сеттеры вместо полей. –