【发布时间】:2015-05-10 22:02:49
【问题描述】:
我想使用ObjectInputStream 从文件中读取一个对象。
这是readObject 方法内部的样子:
public void readObject(ObjectInputStream inbos) throws IOException {
try {
GameModel gm = (GameModel) inbos.readObject();
} catch (IOException ex) {
Logger.getLogger(GameDeserializer.class.getName()).log(Level.SEVERE, null, ex);
} catch (ClassNotFoundException ex) {
Logger.getLogger(GameDeserializer.class.getName()).log(Level.SEVERE, null, ex);
}
}
我的GameModel 类有一个readResolve 方法。 GameModel 类也是单例。
public Object readResolve() throws ObjectStreamException {
System.out.println("At read resolve method ");
GameModel themodel = getGameModel();
System.out.println("Reading the file : " + themodel.toString() + themodel );
return themodel;
}
问题是它没有正确读取对象。 它正在读取它作为指针。 我需要帮助。
【问题讨论】:
-
您能否阐明“将其作为指针阅读”的意思?
-
另外,readObject() 是 GameModel 的 readObject 吗?如果是这样,请将其删除。
-
(snapshotpattern.GameModel@506c0a14snapshotpattern.GameModel@506c0a14 ) 这是我读取文件时得到的输出。
-
@missh 这只是对对象调用 toString() 两次的结果,出于某种原因。它不是任何“作为指针”的证据,这在 Java 中是没有意义的。
标签: java serialization objectinputstream