首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java Serializable对象失败

Java Serializable对象失败
EN

Stack Overflow用户
提问于 2013-12-04 11:08:24
回答 1查看 3.1K关注 0票数 1

我在将Serializable对象写入文件时遇到了问题。我已经能够缩小问题的范围,但不知道是什么导致了这个问题,所以我只是在寻找任何人可能有的建议,因为我真的不能给出一个例子,但我会给出一些shell代码来描绘这幅图景。

基本上,我有一个对象来存储有关程序的信息,通过将对象写入文件来保存该信息。它有一个DefaultComboBoxModel,这是导致我的问题的一部分。例如:

代码语言:javascript
复制
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的类,如下所示:

代码语言:javascript
复制
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实例,则在尝试将java.io.NotSerializableException写入文件时,它会在对象SomeOtherClass上抛出ProgramInfo。如果我注释掉SomeOtherClass,那么在尝试将ProgramInfo写入文件时,SomePanel类中的下一个对象将抛出相同的错误。

需要注意的是,我不是一个专业的程序员,这只是一个爱好,我完全是自学的。任何关于为什么会发生这种情况的建议/阅读材料都会很棒。提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2013-12-04 11:39:31

字段也必须是可序列化的,所以您应该检查DefaultComboBoxModel是否实现了Serializable。我怀疑它不会。

您应该将this看作是对象序列化的引用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20366052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档