繁体   English   中英

Java可序列化对象失败

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM