gpt4 book ai didi

java - 是否可以使可序列化类的锁暂时存在?

转载 作者:行者123 更新时间:2023-12-01 06:54:34 26 4
gpt4 key购买 nike

我有一个实现了Serialized的类,并且我通过一个Object类型的lock对象来保护该类的不变量。可以让它暂时吗?或者它会产生任何不需要的副作用吗?

代码:

class MyClass implements Serializable{

private final transient lock = new Object();
....
}

最佳答案

你应该做的是使用一个空数组(甚至new Object[0])。空数组是可序列化的,而 new Object() 则不可序列化。

就这样做:

private final Object lock = new Object[0];

自动(反)序列化将按预期工作,将重新创建锁。它可能比 new Object() 占用更多的内存,但应该可以忽略不计,并且序列化空间也会增加几个字节。

但如果您想避免自定义序列化,这绝对是最简单的解决方案。

关于java - 是否可以使可序列化类的锁暂时存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15638972/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com