首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JAXB通用XmlAdapter实现

JAXB通用XmlAdapter实现
EN

Stack Overflow用户
提问于 2015-01-05 13:15:26
回答 1查看 742关注 0票数 0

这个问题延续了我以前的思路:here

现在我想使用一个通用的XmlAdapter,因为我需要对不同类型的值应用相同的工作。我可以为每种类型创建一个类,但这不是我问题的目的,我想让这个类变得通用。所以我就是这么做的:

通用适配器类

代码语言:javascript
复制
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;
  }

}

我的临时类以生成正确的适配器

代码语言:javascript
复制
public final class DefinedXMLAdapter {
      public static class BooleanAdapter extends GenericXMLAdapter<Boolean> {};
}

示例马歇尔

代码语言:javascript
复制
  @XmlElement(name = "theBoolean")
  @XmlJavaTypeAdapter(DefinedXMLAdapter.BooleanAdapter.class)
  protected Boolean myBoolean = false;

当我执行我的代码时,我会发现一个奇怪的错误,我无法理解:

代码语言:javascript
复制
Exception in thread "main" java.lang.NullPointerException
  at com.sun.xml.internal.bind.v2.runtime.reflect.TransducedAccessor.get(TransducedAccessor.java:154)
  ...

有人能向我解释我的代码出了什么问题,以及如何解决这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2015-01-07 13:15:34

通过使用MOXy作为JAXB实现,我终于设法解决了我的问题。谢谢你抽出时间,祝你今天愉快!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27780351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档