gpt4 book ai didi

java - 如何在jaxb中注释类型集合的成员

转载 作者:行者123 更新时间:2023-12-01 06:00:03 27 4
gpt4 key购买 nike

我已经成功整理了以下类(class)

@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() {}
....}

当我只是尝试编码(marshal)容器字段时,出现以下错误:

类 java.util.LinkedList 及其任何父类(super class)对此上下文都是已知的

如何注释字段成员,以便容器类将被编码(marshal)为字段集合?

最佳答案

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

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

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

关于java - 如何在jaxb中注释类型集合的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1012064/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com