如果我必须设计这个,我可能不会使用可变状态但是处理来自另一个项目的以下代码。
class MyEntity{
var addressKeyMap = new ConcurrentHashMap[Address,Int]().asScala
....
}
在上面的代码片段中,MyEntity类正在泄漏其状态。在其他地方,它直接用作myEntity.addressKeyMap。为了在MyEntity类中包含状态,我可以使' addressKeyMap'作为私人,并有一个访问方法,复制' addressKeyMap'进入一个新的不可变映射。这是你如何保护国家的方法吗?