1

我已成功编组以下课程

@XmlRootElement(name = "Field")
private static class MyField {       
    @XmlAttribute(name = "Name")
    String name;
    @XmlElement(name = "Size")
    int size;
    ....}

现在我想让我的容器类保存多个 Field 实例,所以我用以下方式声明了一个类:

private static class MyFieldsCollection {     
    private Collection<MyField> fields = new LinkedList<MyField>();

    public MyFieldsCollection() {}
    ....}

当我只是尝试编组容器字段时,我收到以下错误:

此上下文已知类 java.util.LinkedList 或其任何超类

如何注释字段成员,以便将容器类编组为字段集合?

4

1 回答 1

0

您不应将 MyField 类注释为 @XmlRootElement,因为它不是 xml 根元素。我认为您可以使用 @XmlType 对其进行注释,也可以不对其进行注释。您可以尝试将@XmlElement 标记放在类中“字段”属性的getter中。如果它有效,您的 XML 将如下所示:

<MyFieldsCollection>
   <fields name="name1" size="size1"/>
   <fields name="name2" size="size2"/>
</MyFieldsCollection>

如果它不起作用,并且是在黑暗中拍摄,请尝试将“集合”的类型更改为“列表”以检查它是否有一些不同。您使用的是什么版本的 Java?您用来序列化对象的代码是什么样的?

于 2009-06-18T16:37:36.747 回答