Mutable
包装一个不可变数据,基于 ReentrantMutex 提供并发安全的更新方式。同时支持在数据被修改时执行 lambda。
请不要使用此类包装本身可变的数据,mutable 及其重载会拒绝 Mutable / MutableCollection / MutableMap,但对于在这之外的类型,例如一个包含 var 的数据类、一个 Mutable 或 MutableCollection 的包装类,mutable 的检查无能为力。
请使用 mutable 来构造此类,如果确实需要包装 Mutable、MutableCollection 或 MutableMap,请使用 forceMutable,请阅读 forceMutable 的描述来了解这么做的影响,forceMutable 的描述也适用于包装其他可变类型带来的影响。