我经常使用java序列化,这对于存储完整的对象层次结构非常有用。
当尝试序列化 SetMultimap 时,我收到一个异常,表示 AbstractMultimap.WrappedSet不可序列化。
guava 用户如何解决这个问题?
提前致谢,
最佳答案
多重映射元素的 View (例如从 get
方法返回的集合、asMap
View 等)是有意设计的不可序列化。但是,SetMultimap
实现因此而无法序列化是不正确的。 Guava 提供的所有 SetMultimap
实现实际上都是可序列化的......只是它们的部分 View 集合不是。
如果您需要序列化这些集合之一,则应将其显式复制到普通集合:
Set<Foo> foo = Sets.newHashSet(multimap.get(someKey));
关于java - Guava SetMultimap 不可序列化(由于不可序列化 WrappedSet),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8488394/