將對象作爲方法的參數傳遞時,發生方法內部參數的所有更改都會影響「原始」對象。這是因爲參數是對象的引用。Java:將對變量的引用作爲參數傳遞給方法
但我也想對變量做同樣的事情 - 我想要在方法內部發生的所有變化影響「原始」變量。但我不知道如何。我想這樣做,因爲有時需要以相同的方式處理多個局部變量。
如何將一個引用傳遞給一個變量作爲方法的參數?
將對象作爲方法的參數傳遞時,發生方法內部參數的所有更改都會影響「原始」對象。這是因爲參數是對象的引用。Java:將對變量的引用作爲參數傳遞給方法
但我也想對變量做同樣的事情 - 我想要在方法內部發生的所有變化影響「原始」變量。但我不知道如何。我想這樣做,因爲有時需要以相同的方式處理多個局部變量。
如何將一個引用傳遞給一個變量作爲方法的參數?
沒有其他選擇,只能將變量存儲在對象中並傳遞該對象。所有參數都通過Java中的值傳遞。
該對象可以是this
(即變量實際上是當前對象的字段)。
然後猜測這是一個好主意,簡單地這樣做:'variable = processVariable(variable);'? – AlexSavAlexandrov
你當然可以做到這一點。但它只適用於一個變量。 –
你能說清楚「變量」一詞嗎?你是指方法內部的本地引用,傳入的原始內容還是其他內容?
Java引用和基元按值傳遞。無論你想要多少,你都不能改變它們。
由一個變量我的意思是一個原始的整數,雙,e.t.c. – AlexSavAlexandrov
不能用Java進行更改。你將需要另一種語言。 – duffymo
方法中的局部變量以相同的方式工作。最好展示一下你想要做的事情。而且,Java從來沒有通過引用傳遞,只有通過價值。 –
@Keyser這不是一個好建議= \。 –
@LuiggiMendoza真實類型:p但它的工作原理。傳遞對象並不總是正確的選擇。 – keyser