0

呼び出されたメソッドに渡されたメソッド パラメータが誤って変更されないように保護したいと考えています。finalメソッドシグネチャで次のように、キーワードを使用してこれを(部分的に)達成できることを私は知っています。

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

上記の署名の助けを借りて、の値を変更することはできませんがintVal、の値 (メンバー) を変更することはできます (myobj変更されていない参照のみを安全に保護できますが、参照オブジェクトのメンバーは保護できません。部分的)。

myobj現在、呼び出されたメソッドで変更されて、メンバーを安全に保護しようとしていsomeMethodます。

私の知る限り、次の方法でこれを達成できました

  1. 不変クラスを作成し、それをパラメーターとして渡します
  2. オブジェクトをディープ コピーし、複製されたオブジェクトをメソッドに送信します。

メソッドのパラメーターを保護するためのより良いアプローチはありますか?

4

0 に答える 0