在 Groovy 中,我可以通过执行以下操作使对象不可变:
@Immutable
class MyObject {
...
}
但是,如果 MyObject 具有对可变对象的引用,如
@Immutable
class MyObject {
MutableObject mutableObject
}
我不能。我得到:
classes only support properties with effectively immutable types including
但是,即使你 myObject 有一个 MutableObject,对它的引用也永远不会改变。
我可以做些什么来使
MyObject
尽可能不可变? 最佳答案
如果您确定 MutableObject
实际上是不可变的,您可以这样做
@Immutable( knownImmutableClasses=[ MutableObject ] )
class MyObject {
MutableObject mutableObject
}
显然,如果这是谎言并且 mutableObject 发生变异,则必须小心;-)
关于groovy - 在 Groovy 中使对象不可变,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21454901/