考慮下面的代碼:解引用可能嗎?
public class Test {
static private volatile Integer number1 = 42;
static private volatile Integer number2 = 42;
public static void main(String[] args) {
Test test = new Test();
test.changeInteger(number1);
System.out.println(number1);
}
public void changeInteger (Integer number) {
number = new Integer(3);
}
}
我想改變取決於我傳遞給該方法changeInteger
參數中的任一或number1
的number2
值。顯然這是行不通的。有沒有一種方法可以在不使用反射的情況下使用Java進行工作?
澄清:我想致電changeInteger(number1)
更改字段number1
。
你有幾個選擇,使用數組,使用if/else語句,使用switch語句..但是,更重要的是,爲什麼? – 2014-09-23 12:42:16
可能重複[是Java「傳遞引用」還是「傳遞值」?](http://stackoverflow.com/questions/40480/is-java-pass-by-reference-or-pass (按值) – Smutje 2014-09-23 12:43:41
@ChrisK我的實際代碼有點複雜。這些字段是實際的WeakRerences,將通過雙重檢查的鎖定模式由多個線程訪問。所以我想要一個簡單的方法來參數化哪個字段將被更新。 – Roland 2014-09-23 12:46:43