我正在使用wsdl和配置cxf / jaxb<jaxb:globalBindings generateElementProperty="false">生成Java类,这为我提供了直接从xml中通过getter和setter直接获取元素的优点,而不必每次都实例化一个JAXBElement显式。

我要访问的一个元素自动生成为@XmlSeeAlso

问题:自动生成的类不包含该类的任何吸气剂!如果没有创建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
{

最佳答案

我将尝试解决您提出的问题:


  //没有getAnySubType()方法!


不会的。在超类上有一个返回特定子类实例的方法并不常见。


  好吧,我需要从xml中获取一些值
  hte AnySubType,但是缺少该类型的吸气剂,所以我不能
  访问他们...


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

07-24 16:26