我想知道我需要做些什么来解决这个错误。 由于在我的班级中使扫描器成为我想要序列化的瞬态,我现在得到一个nullpointerexception,其中第一个使用scanner(in)的实例。
即in.next();
这是我第一次在工作中使用Serializable。我已经制作了所有顶级类Serializable。
我想知道是否必须对我的数据结构进行任何操作,例如数组,arraylists等。需要将哪些内容标记为瞬态?
任何帮助非常感谢
答案 0 :(得分:2)
序列化对象时,不保留瞬态字段中的值。一种解决方案是实现一个writeObject
方法,在对象反序列化后重新初始化瞬态字段,如下所述:http://java.sun.com/developer/technicalArticles/Programming/serialization/
但是,在可序列化类中使用Scanner
对象听起来有点奇怪。您应该将其拆分为两个类 - 一个包含您要序列化的数据的可序列化类,另一个用于执行用户界面或文件读取的类或者您正在使用Scanner
执行的任何操作。