【发布时间】:2014-11-11 21:52:19
【问题描述】:
我查看了有关此主题的一些帖子,但没有一个解决方案对我有用。我有一个名为partsListRight 的DefaultListModel,它是我的窗口类的成员,我有一个名为配置的内部类,其中包含一个ArrayList,我想用partsListRight 中的项目填充它:
@XmlRootElement
class Configuration{
@XmlElement
private ArrayList<String> Component;
public Configuration(){
Component = new ArrayList<String>();
Object[] partsList = partsListRight.toArray();
for (Object object : partsList){
Component.add((String)object);
}
}
}
在我的窗口类中,我有一个 save() 方法对 ArrayList 组件进行编组:
public void save() {
Configuration configuration = new Configuration();
try{
File file = new File("C:\\configuration.xml");
JAXBContext jaxbContext = JAXBContext.newInstance(Configuration.class);
Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
jaxbMarshaller.marshal(configuration, file);
jaxbMarshaller.marshal(configuration, System.out);
} catch(JAXBException e){
e.printStackTrace();
}
}
但是,当我尝试运行此方法时,我收到配置是非静态内部类的错误,而 JAXB 无法处理这些错误。我不知道如何解决这个问题。非常感谢任何帮助!
【问题讨论】:
-
它必须是非静态的吗?它必须是一个内部类吗?
-
我猜它不一定是内部类,但它必须是非静态的,因为 DefaultListModel 取决于在 GUI 的 JList 中选择了哪些项目
标签: java xml jaxb jlist defaultlistmodel