【问题标题】:Problem with HashSet Serialization / CloningHashSet 序列化/克隆问题
【发布时间】:2021-03-15 11:10:56
【问题描述】:

为什么会失败?我将空HashSet 的序列化形式与其通过序列化+反序列化创建的克隆的序列化形式进行比较。

import org.apache.commons.lang3.SerializationUtils;
import static org.assertj.core.api.Assertions.assertThat;

...

final HashSet<String> hashSet = new HashSet<>();
assertThat(SerializationUtils.serialize(hashSet))
    .containsExactly(SerializationUtils.serialize(SerializationUtils.clone(hashSet)));

AssertionError 将被抛出。

HashSet 中的某些内容必须未正确序列化/反序列化。你有什么想法,到底是什么?我正在使用 OpenJDK 8。

【问题讨论】:

标签: java serialization cloning


【解决方案1】:

它与loadingFactor有关。如果 Hashset 是这样实例化的,那么它可以工作:

new HashSet(0,0.75f);

【讨论】:

  • 您最好将此添加到原始帖子中,而不是添加新答案。
  • @DorianGray 可以自行回答问题,stackoverflow.com/help/self-answer
  • 这看起来不像是一个答案。它没有解释第一篇文章中的问题。
猜你喜欢
  • 2013-09-06
  • 2013-01-15
  • 2015-06-01
  • 2020-12-24
  • 2010-12-18
  • 2011-03-08
  • 1970-01-01
  • 1970-01-01
  • 2023-03-09
相关资源
最近更新 更多