【发布时间】:2011-11-09 18:47:59
【问题描述】:
我正在用 java 中的摇摆组件做一个简单的骰子游戏。我只是想保存游戏的进度,所以我创建了一个名为State 的类,然后我想对其进行序列化。
但是当我尝试这样做时,NullPointerException 返回:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at javax.swing.plaf.synth.SynthLookAndFeel.paintRegion(SynthLookAndFeel.java:364)
at javax.swing.plaf.synth.SynthLookAndFeel.update(SynthLookAndFeel.java:328)
at javax.swing.plaf.synth.SynthViewportUI.update(SynthViewportUI.java:168)
...
使用调试器,我看到文件已创建,因此对象已被序列化,但我无法继续执行主程序。
我在 State 类中有这个方法:
public void SaveState() {
try {
ObjectOutput out = new ObjectOutputStream(new
FileOutputStream("C://game.ser"));
out.writeObject(this);
out.close();
} catch (FileNotFoundException ex) {
} catch (IOException ex) {
}
}
类实现Serializable
【问题讨论】:
-
您收到的是
java.lang.NullPointerException。那是完整的堆栈跟踪吗? -
嗯,默默地忽略异常通常是个坏主意。但我看不出您的
SaveState()方法的内容可能会导致后面的异常。调用方法后,是否设置了对null的引用? -
这与你的对象序列化无关。完整的堆栈跟踪将告诉您该异常来自何处。
-
您的类实现了 Serializable,但该类中的每个成员类型是否也实现了 Serializable(并且递归地实现了那些)?
标签: java exception serialization nullpointerexception frame