[英]JAXB Generic XmlAdapter implementation
這個問題繼續了我以前的話題: 這里
現在,我想使用通用的XmlAdapter,因為我需要將相同的工作應用於值的不同類型。 我可以為每種類型創建一個類,但這不是我的問題的目的,我想使它通用。 所以這就是我所做的:
通用適配器類
public class GenericXMLAdapter<T> extends XmlAdapter<GenericXMLAdapter.AdaptedValue<T>, T>{
public static class AdaptedValue<T> {
@XmlAttribute
public T code;
}
@Override
public T unmarshal(AdaptedValue<T> v) throws Exception {
return v.code;
}
@Override
public AdaptedValue<T> marshal(T v) throws Exception {
AdaptedValue<T> adaptedValue = new AdaptedValue<T>();
adaptedValue.code = v;
return adaptedValue;
}
}
我的臨時類生成正確的適配器
public final class DefinedXMLAdapter {
public static class BooleanAdapter extends GenericXMLAdapter<Boolean> {};
}
編組的例子
@XmlElement(name = "theBoolean")
@XmlJavaTypeAdapter(DefinedXMLAdapter.BooleanAdapter.class)
protected Boolean myBoolean = false;
當我執行代碼時,出現一個我不明白的怪異錯誤:
Exception in thread "main" java.lang.NullPointerException
at com.sun.xml.internal.bind.v2.runtime.reflect.TransducedAccessor.get(TransducedAccessor.java:154)
...
有人可以向我解釋我的代碼有什么問題以及如何解決此問題嗎?
我最終設法通過使用MOXy作為JAXB實現來解決我的問題。 謝謝您的時間,祝您有美好的一天!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.