我使用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
{
答案 0 :(得分:2)
我将尝试解决你提出的观点:
//没有getAnySubType()方法!
不会有。在超类上有一个返回特定子类实例的方法,这不是常见的面向对象实践。
不知何故,我需要从xml获取的一些值在里面 虽然有AnySubType,但是缺少这种类型的getter,所以我不能 访问他们......
您需要将AutoGeneratedClass
的实例强制转换为AnySubType
才能访问子类方法。