JAXB注释-属性保持列表/字符串作为值

JAXB注释-属性保持列表/字符串作为值,jaxb,Jaxb,我有以下结构 public static class Param implements Serializable { @XmlValue protected Object value; @XmlAttribute(name = "name") protected String name; } 在这里,“Object”类型的属性“Value”有时会保存字符串,有时会保存列表,因此当值传递为字符串时,Marshall

我有以下结构

  public static class Param implements Serializable
  {

        @XmlValue
        protected Object value;

        @XmlAttribute(name = "name")
        protected String name;
   }

在这里,“Object”类型的属性“Value”有时会保存字符串,有时会保存列表,因此当值传递为字符串时,Marshall和unMarshall将正常工作,但当值为列表时,Marshall失败,您能告诉我问题出在哪里吗?

我会将字段/属性设置为
列表,那么您的
字符串
就是一个大小为1的
列表

@XmlValue
保护列表值;

使现代化
实际上,列表可以是任何对象的列表,而不仅仅是列表 字符串,例如列表

然后,您需要执行以下操作:

@xmlmix
保护列表值;
有关更多信息,请参见以下相关问题:


感谢Blaise:),是否有其他解决方案(例如注释),通过此解决方案,我需要重新考虑所有旧代码,因为它预期值为字符串,一个新增加的功能将需要一个列表作为参数值?@user2490510-您可以将字段设置为
list
,然后您可以拥有任何您想要的访问器。在这两种情况下,您希望XML是什么样子的?实际上,列表可能是任何对象的列表,而不仅仅是列表或字符串List@user2490510-我已更新了我的答案以解决这一点。非常感谢Blaise的支持,我将尝试最后一个选项:):)