我有三节课
@XmlRootElement
public class GeofenceParameter{
private GeofenceCenterAddress geofenceCenterAddress;
private GeofenceCenterCoordinates geofenceCenterCoordinates;
}
public class GeofenceCenterAddress extends GeofenceParameter{
}
public class GeofenceCenterCoordinate extends GeofenceParameter{
}
我已经制作了两个不同的 XmlAdapter 扩展类来编码和解码 GeofenceCenterAddress 和 GeofenceCentereCoordinate 中的地理围栏参数
Class forGeofenceCenterCoordinate extends XmlAdapter<ValueType,BoundType>{
}
Class forGeofenceCenterAddress extends XmlAdapter<ValueType,BoundType>{
}
用于根据 Soap 请求发送从 GeofenceParamter 获取与 GeofenceCenterAddress 或 GeofenceCenterCoordinate 类相关的实例。
为此,我在 package-info.java 文件
@XmlJavaTypeAdapters{(@XmlJavaTypeAdapter(type=forGeofenceCenterCoordinate)),@XmlJavaTypeAdapter(type=forGeofenceCenterAddress)}
中使用了注释但是在 Web 服务中,它将为我提供我在注释中指定的类的实例,即来自 GeofenceParamter 的
@XmlJavaTypeAdapter(type=forGeofenceCenterCoordinate) class not of @XmlJavaTypeAdapter(type=forGeofenceCenterAddress)
。你能帮我在 JAXB 继承编码和解码中获取第二类的实例吗?
提前致谢
最佳答案
我不记得使用过 @XmlJavaTypeAdapters
,但 @XmlJavaTypeAdapter
注释的正常用法只是 @XmlJavaTypeAdapter(forGeofenceCenterCoordinate.class)
。
只有在包级别应用注释时才需要类型参数。
关于java - 使用 @XMLJavaTypeAdapters 进行 JAXB 解码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10281785/