我有以下代码:在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