有人知道如何将方法添加到不可变的类中,这使我只能在初始化时修改指定的对象?
例如,您有2个数字,您希望能够乘以一个因素。
因此,当初始化时,您也希望如果您想
class name_of_object = new class(int1,int2).multiply_method(intfactor);
这将创建一个无法修改的对象?
简单:你不能。
如果您以某种方式修改了不变的类的字段,那么您已经证明它不是不变的。
如果是您自己的班级,那么您当然可以通过编写适当的方法来进行更改,从而使该类都可以变形。
如果要保持类不变的类别,则可以使修改方法返回类的新实例,并带有更改的字段值(例如BigInteger.add()
)。原始实例保持不变,您会得到一个具有所需值的新实例。
如果是别人的不变班,您将无法更改它。您必须处理其方法。