1

我想知道我需要做些什么来解决这个错误。由于在我想要序列化的类中使扫描仪瞬态,我现在得到一个空指针异常,其中使用了扫描仪 (in) 的第一个实例。

即 in.next();

这是我第一次在工作中使用 Serializable。我已经使我所有的顶级类可序列化。

我还想知道是否必须对我的数据结构(例如数组、数组列表等)做任何事情。哪些事情需要标记为瞬态?

非常感谢任何帮助

4

1 回答 1

2

序列化对象时不会保留瞬态字段中的值。一种解决方案是实现一种writeObject在反序列化对象后重新初始化瞬态字段的方法,如下所述:http: //java.sun.com/developer/technicalArticles/Programming/serialization/

然而,Scanner在可序列化的类中有一个对象听起来有点奇怪。您可能应该将其拆分为两个类 - 一个包含您要序列化的数据的可序列化类,另一个执行用户界面或文件读取或您正在使用Scanner.

于 2012-02-04T12:13:30.930 回答