我面临一个问题,我希望有人能帮助我。 我有一个模型项目,其中包含很多pojos,还有一些枚举。基于常规枚举的jaxb枚举 - unmarshall问题
我有一个通用的地图,其保持键和值,其可以是任何类型的。 地图上看起来是这样的:
@XmlRootElement
public class Foo implements Serializable
Map<Object,Object> myMap
其中一个地图能够保存的值是一个枚举。 因为我想JAXB编组/解组,我试图创造一些像
@XmlEnum(value=org.yyy.models.enum.FooEnum)
public class MyEnum
枚举类是一个简单枚举:
public enum FooEnum{
ONE,TWO,THREE
}
,因为我不希望复制使用@XmlEnumValue的枚举值我想知道我可以如何添加该依赖项。再次,无需维护两套值(一个在枚举,一个在我的JAXB枚举)。
在我看到的所有例子中,它很简单,通常是类持有某种类型的一员,在我的情况下,由于地图可以容纳任何价值,我不能将其添加任何限制。
我的问题是与JAXB解组,现在看来似乎是无法将值从我的测试转换为枚举值 - 它不抛出异常,解组值为null
这里是例如:
<table>
<entry>
<key xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">Name</key>
<value xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">Test</value>
</entry>
<entry>
<key xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">Type</key>
<value xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="myEnum">ONE</value>
</entry>
</table>