将不同属性类型解组到同一java对象时的NullPointerException

将不同属性类型解组到同一java对象时的NullPointerException,java,jaxb,unmarshalling,Java,Jaxb,Unmarshalling,我在尝试解组XML时遇到了一个严重的问题。起初,成员元素在其“value”属性中只包含整数(如第一个“EnumType”元素),但是,现在另一个“EnumType”以字符串作为值出现-我得到下面的NullPointerException。 请注意,member.java中的'value'成员在开始时来自类型“int”(当只接受Integer作为成员元素的值时),并且工作正常。只有当我将其更改为Object(我想这就是我问题的根源)时,才会出现以下异常 XML: <EnumType Name


我在尝试解组XML时遇到了一个严重的问题。起初,成员元素在其“value”属性中只包含整数(如第一个“EnumType”元素),但是,现在另一个“EnumType”以字符串作为值出现-我得到下面的NullPointerException。

请注意,member.java中的'value'成员在开始时来自类型“int”(当只接受Integer作为成员元素的值时),并且工作正常。只有当我将其更改为Object(我想这就是我问题的根源)时,才会出现以下异常

XML:

<EnumType Name="Genre" UnderlyingType="Edm.Int32">
   <Member Name="ACTION" Value="0"/>
   <Member Name="COMEDY" Value="1"/>
</EnumType>
<EnumType Name="Rating" UnderlyingType="Edm.String">
   <Member Name="RatingA" Value="G"/>
   <Member Name="RatingB" Value="PG"/>
 </EnumType>
在解组上述XML时,我得到了以下NullPointerException:

java.lang.NullPointerException 位于com.sun.xml.internal.bind.v2.runtime.reflect.TransducedAccessor.get(未知源) 位于com.sun.xml.internal.bind.v2.runtime.property.AttributeProperty。(未知源) 位于com.sun.xml.internal.bind.v2.runtime.property.PropertyFactory.create(未知源) 位于com.sun.xml.internal.bind.v2.runtime.ClassBeanInfoImpl。(未知源) 位于com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.getOrCreate(未知源) 位于com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.getOrCreate(未知源) 位于com.sun.xml.internal.bind.v2.runtime.property.ArrayElementProperty。(未知源) 位于com.sun.xml.internal.bind.v2.runtime.property.ArrayElementNodeProperty。(未知源) 位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) 位于sun.reflect.NativeConstructorAccessorImpl.newInstance(未知源) 位于sun.reflect.delegatingConstructor或AccessorImpl.newInstance(未知源) 位于java.lang.reflect.Constructor.newInstance(未知源) 位于com.sun.xml.internal.bind.v2.runtime.property.PropertyFactory.create(未知源) 位于com.sun.xml.internal.bind.v2.runtime.ClassBeanInfoImpl。(未知源) 位于com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.getOrCreate(未知源) 位于com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.getOrCreate(未知源) 位于com.sun.xml.internal.bind.v2.runtime.property.ArrayElementProperty。(未知源) 位于com.sun.xml.internal.bind.v2.runtime.property.ArrayElementNodeProperty。(未知源) 位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) 位于sun.reflect.NativeConstructorAccessorImpl.newInstance(未知源) 位于sun.reflect.delegatingConstructor或AccessorImpl.newInstance(未知源) 位于java.lang.reflect.Constructor.newInstance(未知源) 位于com.sun.xml.internal.bind.v2.runtime.property.PropertyFactory.create(未知源) 位于com.sun.xml.internal.bind.v2.runtime.ClassBeanInfoImpl。(未知源) 位于com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.getOrCreate(未知源) 位于com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.getOrCreate(未知源) 位于com.sun.xml.internal.bind.v2.runtime.property.SingleElementNodeProperty。(未知源) 位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) 位于sun.reflect.NativeConstructorAccessorImpl.newInstance(未知源) 位于sun.reflect.delegatingConstructor或AccessorImpl.newInstance(未知源) 位于java.lang.reflect.Constructor.newInstance(未知源) 位于com.sun.xml.internal.bind.v2.runtime.property.PropertyFactory.create(未知源) 位于com.sun.xml.internal.bind.v2.runtime.ClassBeanInfoImpl。(未知源) 位于com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.getOrCreate(未知源) 位于com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.getOrCreate(未知源) 位于com.sun.xml.internal.bind.v2.runtime.property.SingleElementNodeProperty。(未知源) 位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) 位于sun.reflect.NativeConstructorAccessorImpl.newInstance(未知源) 位于sun.reflect.delegatingConstructor或AccessorImpl.newInstance(未知源) 位于java.lang.reflect.Constructor.newInstance(未知源) 位于com.sun.xml.internal.bind.v2.runtime.property.PropertyFactory.create(未知源) 位于com.sun.xml.internal.bind.v2.runtime.ClassBeanInfoImpl。(未知源) 位于com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.getOrCreate(未知源) 位于com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl。(未知源) 位于com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl。(未知源) 位于com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(未知源) 位于com.sun.xml.internal.bind.v2.ContextFactory.createContext(未知源) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处 位于sun.reflect.NativeMethodAccessorImpl.invoke(未知源) 在sun.reflect.DelegatingMethodAccessorImpl.invoke处(未知源) 位于java.lang.reflect.Method.invoke(未知源) 位于javax.xml.bind.ContextFinder.newInstance(未知源) 位于javax.xml.bind.ContextFinder.newInstance(未知源) 位于javax.xml.bind.ContextFinder.find(未知源) 位于javax.xml.bind.JAXBContext.newInstance(未知源) 位于javax.xml.bind.JAXBContext.newInstance(未知源) 位于com.sap.ndb.studio.rdl.csdlparser.jaxb.JAXBParser.load(JAXBParser.java:26) 位于com.sap.ndb.studio.rdl.datapreview.functions.LoadGRDL.function(LoadGRDL.java:59) 位于org.eclipse.swt.browser.WebSite.Invoke(WebSite.java:773) 位于org.eclipse.swt.browser.WebSite$7.method6(WebSite.java:129) 位于org.eclipse.swt.internal.ole.win32.COMObject.callback6(COMObject.java:119) 位于org.eclipse.swt.internal.win32.OS.DispatchMessageW(本机方法) 位于org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2546) 在org.eclipse.s
@XmlRootElement
public class EnumType {

   @XmlElement(name = "Member", namespace = "http://schemas.microsoft.com/ado/2009/11/edm")
   private List<Member> members = new LinkedList<Member>();

   public List<Member> getMembers() {
      return members;
   }
}
@XmlRootElement
public class Member {

    @XmlAttribute(name = "Name")
    private String name;

    @XmlAttribute(name = "Value")
    private Object value;

    public String getName() {
        return name;
    }

    public Object getValue() {
        return value;
    }
}
@XmlAttribute(name = "Value")
private Object value;