4

我有三节课

@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 服务中,它会给我一个类的实例,我在注释中指定了这个类的实例,即@XmlJavaTypeAdapter(type=forGeofenceCenterCoordinate) class not of @XmlJavaTypeAdapter(type=forGeofenceCenterAddress)来自 GeofenceParamter。

您能否帮助我在 JAXB 继承编组和解组中获取第二类的实例。

提前致谢

4

1 回答 1

1

我不记得曾经使用过@XmlJavaTypeAdapters,但@XmlJavaTypeAdapter注释的正常用法只是@XmlJavaTypeAdapter(forGeofenceCenterCoordinate.class).

仅当在包级别应用注释时才需要类型参数。

于 2012-04-24T11:59:06.620 回答