Java のパラメータを渡す際の注意事項
Javaでは、メソッドにパラメータのコピーが渡される、パラメーターの呼び出し渡しが行われます。
- int、float、booleanなどのプリミティブ型の変数は値渡しされるため、メソッド内で変更しても元の値には影響しません。
- 配列やオブジェクト等の参照型も値渡しだが、メソッドの中で参照型の引数に変更を加えると、元のオブジェクトに影響する。
- 参照型の複製を渡すと、オブジェクト自体が新しく生成されず、オブジェクトへの参照を渡したことになる。
- メソッド内で参照型パラメータを変更するときは、参照先のオブジェクトを変更するのではなく、オブジェクトのプロパティを変更するか、オブジェクトのメソッドを呼び出すことに注意してください。
- 参照型パラメータをfinalに設定することで、メソッド内でパラメータが指すオブジェクトが変更されることを防止できます。
- 基本型パラメータの値をメソッド内で変更しても元の値には影響しません。なぜなら、基本型は値渡しされるからです。
- Java中的String类型是不可变的,在方法内部对String类型参数进行修改时,实际上是创建了一个新的String对象,原始对象不会受到影响。
- 可変なオブジェクト(配列、コレクションなど)の場合、メソッド内部でオブジェクトのプロパティの変更やメソッドの呼び出しを行うと、元のオブジェクトに影響が及ぶ
パラメータを渡すときは、パラメータの型(基本型または参照型)、メソッド内でのパラメータの変更が元の値に影響を与えるかどうか、および参照型パラメータのプロパティを正しく変更する方法やオブジェクトのメソッドを呼び出す方法に注意する必要があります。