Dobry den,
mam XML-data s elementami typu:
<odpoved1>j</odpoved1>
<odpoved2>j</odpoved2>
j = ano (Ja)
n = nie (Nein)
a potrebujem pouzit unmarshalling, ktory mi tieto stringy prevedie na booleany.
XmlAdapter som uz parkrat uspesne pouzila pri konvertovani stringov na stringy,
ale konverziu boolean-string neviem rozchodit (autoboxing by mal snad fungovat).
public class BooleanAdapter extends XmlAdapter<String, Boolean> {
@Override
public Boolean unmarshal(String _sValue) {
boolean value = BooleanType.YES.equals(_sValue);
return new Boolean(value);
}
@Override
public String marshal(Boolean _value){
if (_value) {
return BooleanType.YES.value;
} else {
return BooleanType.NO.value;
}
}
}
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Zeichen {
@XmlJavaTypeAdapter(BooleanAdapter.class)
@XmlElement(name="faeulnis")
private boolean faeulnis;
public boolean isFaeulnis() {
return faeulnis;
}
public void setFaeulnis(boolean faeulnis) {
this.faeulnis = faeulnis;
}
....
Pri spusteni dostanem nasledovnu chybu:
com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 1 counts of
IllegalAnnotationExceptions
Adapter de.bolsys.stala.mortality.data.model.adapter.BooleanAdapter is not
applicable to the field type boolean.
this problem is related to the following location:
at
@javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter(type=class
javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter$DEFAULT, value=class
de.bolsys.stala.mortality.data.model.adapter.BooleanAdapter)
at private boolean
de.bolsys.stala.mortality.data.model.Zeichen.faeulnis
Nasla som na Internete, ze aj primitivne typy by mali fungovat ale popisane
riesenie mi bohuzial nefungovalo. Vedel by mi prosim nieto poradit ako na to?
Dakujem
Radovana Straube