2013-03-10 28 views
0

我正在傳遞一個java.lang.Long類實例給一個方法(顯然是作爲參考),我想知道是否可以修改它的long值,以便調用者可以獲取修改後的值。我已經看過java.lang.Long的文檔,但是似乎沒有這種類型的setter方法。它是否正確?如何更新Java中java.lang.Long的long值?

回答

4

不能改變長期價值。它是不可改變的。 檢查thisthat瞭解更多信息

+2

不是沒有通過本機代碼或任何反射黑客虛擬機。當然,這是一個極其糟糕的想法。 – Antimony 2013-03-10 14:58:36

3

java.lang.Long不可變的,唯一的方法是將修改後的值重新分配給以前的引用。

public Long someMethod(Long l) { 
    l = watever; 
    return l; 
} 

public void someOtherMethod() { 
    Long l = 22235637334634263464L; 
    l = someMethod(l); 
} 
+0

downvoter護理評論 – PermGenError 2013-03-10 14:59:47

+0

@克里斯但龍是最終的,不可改變的不是嗎? – PermGenError 2013-03-10 15:02:16

+0

@Chris啊我看到了,我現在編輯它。這不是我的意圖:) – PermGenError 2013-03-10 15:05:04

1

Long在Java中是不可變的。你可以改變它的方法內以下列方式:

  1. 把它包
  2. 使用的AtomicLong
  3. 返回改變價值和reasign它的方法外
相關問題