如何从自动生成的@XmlSeeAlso中获取元素?

时间:2014-12-17 15:49:50

标签: java xml jaxb cxf

我使用wsdl和配置cxf / jaxb<jaxb:globalBindings generateElementProperty="false">生成java类,这使我有机会直接通过xml中的getter和setter获取元素,无需每次都显式JAXBElement

我想要访问的一个元素是@XmlSeeAlso自动生成的。

问题:自动生成的类不包含此类的任何getter!如果没有创建getter,我怎么能收到里面的属性?

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Fare", propOrder = {
    "some",
    "props"
})
@XmlSeeAlso({
    AnySubType.class
})
@Generated
public class AutoGeneratedClass {
    //there is no getAnySubType() method!
    //only getters for some, props etc.
}

其中:

@Generated
public class AnySubType
    extends AutoGeneratedClass 
{

1 个答案:

答案 0 :(得分:2)

我将尝试解决你提出的观点:

  

//没有getAnySubType()方法!

不会有。在超类上有一个返回特定子类实例的方法,这不是常见的面向对象实践。

  

不知何故,我需要从xml获取的一些值在里面   虽然有AnySubType,但是缺少这种类型的getter,所以我不能   访问他们......

您需要将AutoGeneratedClass的实例强制转换为AnySubType才能访问子类方法。