不变的类中的方法在初始化时修改初始化变量?爪哇



有人知道如何将方法添加到不可变的类中,这使我只能在初始化时修改指定的对象?

例如,您有2个数字,您希望能够乘以一个因素。

因此,当初始化时,您也希望如果您想

class name_of_object = new class(int1,int2).multiply_method(intfactor);

这将创建一个无法修改的对象?

简单:你不能。

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

如果是您自己的班级,那么您当然可以通过编写适当的方法来进行更改,从而使该类都可以变形。

如果要保持类不变的类别,则可以使修改方法返回类的新实例,并带有更改的字段值(例如BigInteger.add())。原始实例保持不变,您会得到一个具有所需值的新实例。

如果是别人的不变班,您将无法更改它。您必须处理其方法。

最新更新