gpt4 book ai didi

Java:我可以使用 JAXB 序列化字符串列表吗?

转载 作者:行者123 更新时间:2023-11-30 09:00:49 25 4
gpt4 key购买 nike

我没有比字符串列表更复杂的了。我已经实现了几种方法来更简单地使用 JAXB 来序列化各种类。

List 不存在于其他类中,它只是一个简单的 List,我需要在运行时将其加载到 ComboBox 中,并允许用户在闲暇时保存/加载其中的内容。

我可以使用 JAXB 来序列化 List 对象吗?如果可以,怎么做?

最佳答案

这是可能的,但它会比带有 List 字段的简单包装类效率低。

根据您对@BlaiseDoughan 的回答的评论,这是您的SaveableList 实现。基本上你需要的是一个实现 List 并将所有调用转发到内部 List 实现的类,例如数组列表。在我的示例中,为简单起见,我扩展了 AbstractList

SaveableList 实现:

class SaveableList extends AbstractList<String> {

@XmlElement(name="e")
private final List<String> list = new ArrayList<>();

@Override
public String get(int index) {
return list.get(index);
}

@Override
public boolean add(String e) {
return list.add(e);
}

@Override
public int size() {
return list.size();
}

// You might want to implement/override other methods which you use
// And is not provided by AbstractList

}

示例用法:

List<String> list = new SaveableList();
list.add("one");
list.add("two");

// Save it to XML
JAXB.marshal(list, new File("list.xml"));

// Load it from XML:
List<String> list2 = JAXB.unmarshal(new File("list.xml"), SaveableList.class);

这是它生成的 XML:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<saveableList>
<e>one</e>
<e>two</e>
</saveableList>

关于Java:我可以使用 JAXB 序列化字符串列表吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26615264/

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