这实际上取决于您如何序列化对象。
注意:如果您需要更具体的答案,请提供您的类(MyKey
和MyValue
)的一些代码、相关地图的 hazelcast conf 以及您的序列化技术。
编辑(评论后):
我将假设您使用in-memory-format
地图的默认设置,即BINARY
. 在这种情况下,hazelcast 将映射项存储为字节而不反序列化它们,因此put()
. 但是,当您get()
获得值时,hazelcast 必须对其进行反序列化,这就是您得到异常的时候。
另一方面,如果您设置in-memory-format
为OBJECT
,hazelcast 将被迫反序列化对象,put()
然后您将遇到异常。
编辑2:
还有另一种方法可以在put()
不更改in-memory-format
. 您可以EntryAddedListener
在地图上添加一个。
hz.getMap(Client.MAP_NAME).addEntryListener(new EntryAddedListener() {
public void entryAdded(EntryEvent event) {
// this will deserialize the new value and throw exception if format doesn't match
event.getValue();
}
}, true);