ホームページ  >  記事  >  Java  >  Java の整数パラメータ受け渡しメソッドの問題の簡単な分析

Java の整数パラメータ受け渡しメソッドの問題の簡単な分析

高洛峰
高洛峰オリジナル
2017-01-16 16:12:541579ブラウズ

Java 自体は値渡し呼び出しであり、アドレス値がオブジェクトに渡されます。アドレス値の再割り当ては再ポイントと同等であり、外側の層には影響しません。
そして、ここの Integer オブジェクトにも特別な特性があります。実際、実装は

class Integer{
final int value; //一旦赋值,就不能改变。
}

に似ている可能性があります。これは、呼び出し時に渡されるアドレス値は外側の層を変更できず、オブジェクト自体も変更できないことを示しています。結果として、この値は変更できません


解決策はたくさんあります
1. Java スタイルでは、単一の値の戻り値を使用します。 return i; assign 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、回避してください

Integer パラメーターに関連する問題の詳細な分析Java の pass メソッドに関する記事は PHP 中国語 Web サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。