如果我有一个带有Function字段的类,它是不可变的吗?例如:
@code
我们不知道Function实现类是否是不可变的,但这有关系吗?
答案 0 :(得分:1)
对于“不可变”的实际定义:不,您不知道DependentBigtablePath
是否是不可变的,而不知道其所有字段是否也是不可变的。举一个为什么这样的明显例子:
public class ClassThatWantsToBeImmutable {
public final MutableClass a;
//...constructor, etc.
@Override
public String toString() {
return a.toString();
}
}
如果对a
进行了突变,使其toString()
方法返回的内容有所不同,则ClassThatWantsToBeImmutable
(引用a
)的行为也会改变。