Java Сериализуемый Объект терпит неудачу

У меня проблема с записью объекта Serializable в файл. Я смог сузить проблему, но понятия не имею, что может вызвать это, поэтому я просто ищу совет, который может быть у кого угодно, потому что я не могу привести пример, но я дам некоторый код для рисования изображение.

По сути, у меня есть объект, хранящий информацию о программе, которую я сохраняю, записывая объект в файл. Он имеет 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());
    }
}

Эта проблема возникает после того, как я добавляю элемент в DefaultComboBoxModel путем вызова model.addElement(). Однако проблема не возникает, если в моей программе есть только один экземпляр SomePanel, но если я создаю второй экземпляр SomePanel, он генерирует исключение java.io.NotSerializableException для объекта SomeOtherClass при попытке записать ProgramInfo в файл. Если я закомментирую SomeOtherClass, то следующий объект в классе SomePanel выдает ту же ошибку при попытке записать ProgramInfo в файл.

Как примечание, я не опытный программист, это просто хобби, и я полностью самоучка. Любой совет / материал для чтения о том, почему это может произойти, был бы великолепен. Заранее спасибо!

1 ответ

Поля также должны быть сериализуемыми, поэтому вы должны проверить, если DefaultComboBoxModel инвентарь Serializable, Я подозреваю, что это не так.

Вы должны увидеть это как ссылку для сериализации объекта.

Другие вопросы по тегам