0

我想保护传递给被调用方法的方法参数不被意外更改。我知道我们可以final在方法签名中使用关键字来实现这一点(部分),如下所示。

public void someMethod(final int intVal, final MyClass myobj){}

在上述签名的帮助下,我无法更改 的值intVal,但是我可以更改 的值(成员)myobj(我只能保护未更改的引用,但不能保护引用对象的成员,这就是我说的原因部分的)。

现在我也希望保护我的myobj成员,在被调用的方法中进行更改someMethod

据我所知,我可以通过以下方式实现这一目标

  1. 创建一个不可变类并将其作为参数传递
  2. 深拷贝对象并将克隆的对象发送给方法。

有没有更好的方法来保护方法参数?

4

0 回答 0