java - Guava SetMultimap 不可序列化(由于不可序列化 WrappedSet)

标签 java guava

我经常使用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/

相关文章:

java - 我如何摆脱 : HTTP Status 405 - HTTP method GET is not supported by this URL?

guava - ceylon 模块系统 : Guava class mismatch even though there's only one Guava in dependencies tree

java - com.google.common.io.ByteArrayDataInput 的替代方案?

java - R 无法解析为变量 - 在 Eclipse 中将 Android API 20 更新为新的 API 22 后

java - Android:BroadcastReceiver 或 Wakefulintentservice 应该以 finish() 结束吗?

java - 为什么使用工厂方法时 TypeToken 无法捕获泛型类型?

java - 使用 Maps.uniqueIndex 时如何获取当前索引

jakarta-ee - java.lang.NoSuchMethodError : com. google.common.collect.FluentIterable.toList()Lcom/google/common/collect/ImmutableList;

java - 从所有方法访问 SimpleCursorAdapter

java - 使用 XSSFWorkbook 创建 xlsx 文件,但在使用方法 createSheet ("String"时出错)