- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我不想在我的代码中直接对 XmlAdapter 的类使用 XmlJavaTypeAdapter
注释。所以,我写了一些包装器:
class BinderWrapper<MODEL, BEAN> extends XmlAdapter<BEAN, MODEL>{
private final Binder<MODEL, BEAN> target;
private BinderWrapper(Binder<MODEL, BEAN> target){
this.target = target;
}
static <MODEL, BEAN> BinderWrapper<MODEL, BEAN> createInstance(Binder<MODEL, BEAN> binder){
return new BinderWrapper<MODEL, BEAN>(binder);
}
@Override
public MODEL unmarshal(BEAN v) throws Exception {
return target.unBean(v);
}
@Override
public BEAN marshal(MODEL v) throws Exception {
return target.toBean(v);
}
}
它像 XmlAdapter
一样包装了我的 Binder 。我所有的 Binder 都将实现 Binder
接口(interface)
public interface Binder<MODEL, BEAN> {
MODEL unBean(BEAN bean);
BEAN toBean(MODEL model);
}
但是有个问题。 @XmlJavaTypeAdapter
需要没有任何包装器的 XmlAdapter 类。我该如何解决这个问题? - 使用其他注解/写一些配置/写一些神奇的注解/..
谢谢。
更新
我有不是 JavaBeans 的模型类。所以我想做一些两步映射:在 beans 中而不是在 xml 中。我也想做注释的第一步。可能我不仅需要 JAXB 需要这个 bean。真正的问题是:我可以用一些非 JAXB 注释做第一步吗?
最佳答案
I have model classes that aren't JavaBeans. So I want do some two step mapping : in beans and than into xml. I want do first step with annotations too. Probably I well need this beans not only for JAXB. The real question is : can I do first step with some non JAXB annotations?
XmlAdapter 提供了您正在寻找的两步映射。如果您查看下面链接的示例,Map 是不是 Java Bean 的对象。 XmlAdapter 所做的是将其转换为可以映射的 Java Bean。
您可能会发现在类型级别而不是属性级别使用@XmlJavaTypeAdapter 批注更容易。当在类型级别使用时,您是在说每个引用该类的人都应该使用适配器而不是每个属性。查看我在 JAXB and Immutable Objects 上的帖子对于类型级别的示例。
有关详细信息,请参阅:
关于java - @XmlJavaTypeAdapter 和包装器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4412601/
有没有办法在 XmlAdapter 中抛出用户定义的异常并在 JAXB 编码/解码时捕获它们?我的意思是,我可以抛出自己的异常,但 JAXB 只是忽略此异常并抛出他自己的异常,我无法从中获取异常消息或
XmlJavaTypeAdapter 能否从 ClassA 对象编码(marshal)至 ClassB 对象?所以当: public void createClassB (ClassB b) { }
我有以下需要序列化为 XML 的类: @XmlAccessorType(XmlAccessType.FIELD) public class Position { @XmlElement(nam
我在我的项目上运行 Enunciate 时遇到了困难。该项目是一个多模块maven项目,可从https://svn.opentripplanner.org/trunk获取。我想要的只是 API 文档。
我不想在我的代码中直接对 XmlAdapter 的类使用 XmlJavaTypeAdapter 注释。所以,我写了一些包装器: class BinderWrapper extends XmlAdapt
JAXB 提示类 X“...没有无参数默认构造函数。” 在我的例子中,类 X 是数十个自动生成、最终类之一,这些类确实没有无参数默认构造函数。它还碰巧扩展了一个抽象类,如果我愿意的话,我可以对其进行修
我为异常层次结构中的每个异常定义了一个 XmlJavaTypeAdapter。我使用包装器对象来编码异常,如下所示:- @XmlRootElement public Wrapper { T e
希望对 JAXB 专家来说是一个简单的方法: 我正在尝试编码(marshal)一个不定义默认无参数构造函数的不可变类。我已经定义了一个 XmlAdapter 实现,但它似乎没有被拾取。我整理了一个简单
我一直在努力拥有 @XMLJavaTypeAdapter使其按照我的需要工作。我的理解可能有误。请帮助我更好地理解。 要求: 例如: 我有一个带有映射对象列表的传输 XML,如下所示:
我正在使用 CXF 将我的 Web 应用程序转换为 Web 服务。我的 Web 应用程序构建了作为枚举工作的类。示例: package test.javabean; import java.util.
我的package-info.java中有以下内容: @XmlJavaTypeAdapters({ @XmlJavaTypeAdapter(type=OffsetDateTime.class,
当调用 JAXB.marshal 时,我使用 AdapterDataObj 类将 DataObj 类转换为 AdaptedDataObj。 package test; import javax.xml
我有课: public class FooImpl extends Foo { @XmlJavaTypeAdapter(ListXmlAdapter.class) @Override
我正在使用 Spring Boot/JAX-WS (CXF) 创建肥皂网络服务我想加密一个字段。我为此使用 XmlJavaTypeAdapter。例如: @XmlJavaTypeAdapter(
我有一个如下所示的 xml,我需要使用此 xml 来填充下面的对象我需要日期采用所需的格式和日期的时间戳转换。我使用下面提到的代码做到了这一点。 john 10/10/18 @Xm
我有这种情况 @XmlType(name ="", propOrder={"value"}) @XmlRootElement(name = "compound") public class Compo
我研究过Blaise Doughan's answer to a question on this subject但还有一个问题。 XmlJavaTypeAdapters 允许您列出一堆 XmlJav
我正在使用 Spring REST 框架和 Jackson JSON public class JaxbJacksonObjectMapper extends ObjectMapper
我在使用 JAXB 解码时遇到一个小问题,因为我的输入 XML 可以由两个元素之一包装,例如: 1 2
我要上三门课 @XmlRootElement public class GeofenceParameter{ private GeofenceCenterAddress geofenceCen
我是一名优秀的程序员,十分优秀!