不变类中的方法,这些方法在初始化时会修改已初始化的变量?爪哇

时间:2019-03-11 18:19:24

标签: java class methods constructor immutability

有人知道如何将方法添加到不可变的类中,该类允许我仅在初始化时修改指定的对象吗?

例如,您有2个数字,希望将它们乘以一个因子。

所以在初始化时,如果希望的话,还希望能够成倍增加

类名_对象=新类(int1,int2).multiply_method(intfactor);

那会创建一个无法修改的对象吗?

1 个答案:

答案 0 :(得分:0)

简单:您不能。

如果您以某种方式修改了不可变类的字段,那么您已经证明它不是不可变的。

如果这是您自己的类,那么您当然可以在构造后允许更改,方法是编写适当的方法,使该类可变。

如果您想让您的类保持不变,则可以使Modifying方法返回具有更改的字段值(例如BigInteger.add())的类的新实例。原始实例保持不变,您将获得一个具有所需值的新实例。

如果这是其他人的不变类,则无法更改。您必须处理其方法。

相关问题