JavaにおけるIntegerパラメータ伝達方式の問題を浅く分析する

815 ワード

Java自体は値伝達式の呼び出しであり,オブジェクトに対してはアドレス値を伝達する.アドレス値の再割り当ては、外層に影響を及ぼさない再指定に等しい.またここではIntegerオブジェクトにも特殊性があります.実際には似ているかもしれません
 
  
class Integer{
final int value; // , 。
}

これにより、呼び出し時に送信されるアドレス値は、外層+オブジェクト自体を変更することはできず、変更することはできません.この値は変えられない
ソリューションの多くは1、javaスタイルで、単一の値は戻り値を使用します.return i; 外はi=foo();値を付ける複数の値は配列またはオブジェクトで使用されます.2、自分のパッケージ類を伝える.class MutableInteger{int value;}3、伝達専用AtomicInteger原子整形オブジェクト
 
  
    public static void main(String[] ) {     
  AtomicInteger i=new AtomicInteger(40);
  i.intValue();
  System.out.println(i);
 }
    public static void change(AtomicInteger i) {
     i.set(55);
}

伝達後の改値を実現することもでき、
推奨案1、できるだけ避ける