适合我:
public class MapSerializationTest {
private static class Foo implements Serializable {
}
public static void main(String[] args) throws Exception {
Foo foo = new Foo();
Map map1 = new HashMap();
map1.put("foo", foo);
Map map2 = new HashMap();
map2.put("foo", foo);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(map1);
oos.writeObject(map2);
oos.close();
byte[] bytes = baos.toByteArray();
ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
ObjectInputStream ois = new ObjectInputStream(bais);
map1 = (Map) ois.readObject();
map2 = (Map) ois.readObject();
System.out.println(map1.get("foo") == map2.get("foo")); // prints true
}
}
告诉我们你的代码.您可能在第一个和第二个映射之间的ObjectOutputStream上调用reset().或者您使用两个不同的ObjectOutputStream实例.