我敢打賭,這個問題已經得到解答,但我不知道如何用簡單的語言來解釋這個問題在谷歌上找到一個簡單的答案 - 我很抱歉!讓一個方法修改引用,而不是一個新的對象
這是我的測試代碼:
public class test {
public static void increase(Integer i){
i++;
}
public static void main(String[] args){
Integer x = new Integer(10);
increase(x);
System.out.println(x);
}
}
我有一個整數x,並希望通過一個空洞的方法 「增加(..)」 進行修改。由於Integer是一個對象,所以x是一個指向該對象的指針。 我想「增加(..)」來修改Integer本身,所以「i」指的是與「x」相同的對象。但是,如果我看看print(x)(它是「10」),我認爲該方法創建一個新的整數與「x」的內容。
我希望能理解我...
我需要什麼?
我想使用多個線程來總結從1到「n」的數字。 我創建了一個類「MyThread」,它得到一個lowerLimit和一個upperLimit來總結區間,以及一個「結果」(但是作爲參考 - 而不是一個新的對象),這些區間的數量被加到上面。
問候 Tak3r07
+1 Peter。出於興趣,你能解釋爲什麼這是有效的嗎?我認爲Java嚴格按照價值傳遞? (所以當你將一個對象傳遞給一個方法時,該方法與該對象的副本一起工作)。現在很困惑,爲什麼整數不工作,但一個int [] – Chris
謝謝,這兩種好方法! – Tak3r07
@Chris很好的問題,補充說明。 –