我有三节课

@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/

10-10 10:18