有人知道如何将方法添加到不可变的类中,该类允许我仅在初始化时修改指定的对象吗?
例如,您有2个数字,希望将它们乘以一个因子。
所以在初始化时,如果希望的话,还希望能够成倍增加
类名_对象=新类(int1,int2).multiply_method(intfactor);
那会创建一个无法修改的对象吗?
答案 0 :(得分:0)
简单:您不能。
如果您以某种方式修改了不可变类的字段,那么您已经证明它不是不可变的。
如果这是您自己的类,那么您当然可以在构造后允许更改,方法是编写适当的方法,使该类可变。
如果您想让您的类保持不变,则可以使Modifying方法返回具有更改的字段值(例如BigInteger.add()
)的类的新实例。原始实例保持不变,您将获得一个具有所需值的新实例。
如果这是其他人的不变类,则无法更改。您必须处理其方法。