HashSet 序列化/克隆问题
Problem with HashSet Serialization / Cloning
为什么会失败?我正在比较一个空 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 中一定有地方不正确 serialized/deserialized。你知道吗,具体是什么?我正在使用 OpenJDK 8.
它与 loadingFactor 有关系。如果 Hashset 像这样实例化,那么它可以工作:
new HashSet(0,0.75f);
为什么会失败?我正在比较一个空 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 中一定有地方不正确 serialized/deserialized。你知道吗,具体是什么?我正在使用 OpenJDK 8.
它与 loadingFactor 有关系。如果 Hashset 像这样实例化,那么它可以工作:
new HashSet(0,0.75f);