私は、次のコードを持っている:私は仕事にスワップ機能を必要とするJavaでは、どのようにして整数変数を参照として渡すことができますか?
public static void main(String[] args) {
Integer testInt = new Integer(100);
Integer testInt2 = new Integer(200);
System.out.println("Before testInt is " + testInt);
System.out.println("Before testInt2 is " + testInt2);
swap(testInt, testInt2);
//Integer temp = testInt;
//testInt = testInt2;
//testInt2 = temp;
System.out.println("testInt is " + testInt);
System.out.println("testInt2 is " + testInt2);
}
public static void swap(Integer x, Integer y){//x and y point to testInt //and testInt2
Integer temp = x;//temp.operator=() or temp->operator()=x
x = y;
y = temp;
}
を。私の理解では、Javaはすべての価値を渡します。つまり、コピーが送られます。 Cでは、私はtestIntとtestInt2をポインタ(testInt *、testInt2 *)として送信してから、それらの値を設定解除するために逆参照できました。 Javaでこれをどうやって行うことができますか?
Before testInt is 100
Before testInt2 is 200
testInt is 100
testInt2 is 200
はありがとう:
これは、私は現在、(値が交換されていない)取得していますものです。
でそれらを渡します。参照を含むすべてのものがJavaの価値によって渡されます。 – Kayaman
短い答え:あなたはしません。変更可能なintフィールドを持つ他のクラスが必要です。整数はあなたのためにそれをするつもりはありません。 – yshavit
できません、ここに理由があります:http://stackoverflow.com/questions/40480/is-java-pass-by-reference-or-pass-byvalue?rq=1 – DejaVuSansMono