我有以下代碼:在Java中,我如何傳遞Integer變量作爲參考?
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-by-value?rq=1 – DejaVuSansMono