具有Function字段的Java类是否可以视为不可变的?

时间:2018-08-13 20:19:08

标签: java immutability functional-interface

如果我有一个带有Function字段的类,它是不可变的吗?例如:

@code

我们不知道Function实现类是否是不可变的,但这有关系吗?

1 个答案:

答案 0 :(得分:1)

对于“不可变”的实际定义:不,您不知道DependentBigtablePath是否是不可变的,而不知道其所有字段是否也是不可变的。举一个为什么这样的明显例子:

public class ClassThatWantsToBeImmutable {
  public final MutableClass a;

  //...constructor, etc.

  @Override
  public String toString() {
    return a.toString();
  }
}

如果对a进行了突变,使其toString()方法返回的内容有所不同,则ClassThatWantsToBeImmutable(引用a)的行为也会改变。