[英]Java Serializable Object fails
我在将Serializable对象写入文件时遇到问题。 我已经能够缩小问题的范围,但是不知道是什么原因造成的,所以我只是在寻找任何人都可以得到的建议,因为我无法真正给出一个示例,但是我将给出一些shell代码来描绘图片。
基本上,我有一个对象,该对象存储有关通过将对象写入文件保存的程序信息。 它有一个DefaultComboBoxModel,这是导致我的问题的一部分。 例如:
public class ProgramInfo implements Serializable {
private DefaultComboBoxModel model = new DefaultComboBoxModel();
// A bunch of other stuff
public DefaultComboBoxModel getModel() {
return model;
}
public void setModel(DefaultComboBoxModel m) {
model = m;
}
}
然后,我有一个扩展JPanel的类,如下所示:
public class SomePanel extends JPanel {
private SomeOtherClass someOtherClass = new SomeOtherClass();
private ProgramInfo programInfo;
// A bunch of other stuff
public SomePanel(ProgramInfo info) {
programInfo = info;
initGUI();
}
private void initGUI() {
JComboBox box = new JComboBox(programInfo.getModel());
}
}
通过调用model.addElement()将元素添加到DefaultComboBoxModel后,会发生此问题。 但是,如果我的程序中只有一个SomePanel实例,则不会发生此问题,但是如果我创建SomePanel的另一个实例,则在尝试将ProgramInfo写入文件时,它将在对象SomeOtherClass上引发java.io.NotSerializableException。 如果我注释掉SomeOtherClass,则在尝试将ProgramInfo写入文件时,SomePanel类中的下一个对象将引发相同的错误。
需要说明的是,我不是专业程序员,这只是业余爱好,我完全是自学成才。 任何有关为什么会发生这种情况的建议/阅读材料都将是很棒的。 提前致谢!
字段还必须是可序列化的,因此您应该检查DefaultComboBoxModel
实现Serializable
。 我怀疑不是。
您应该将其视为对象序列化的参考。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.