1

我将一个 java.lang.Long 类实例传递给一个方法(显然作为参考),我想知道是否可以修改它的 long 值,以便调用者可以获得修改后的值。我查看了 java.lang.Long 的文档,但似乎不存在这种类型的任何 setter 方法。它是否正确?

4

3 回答 3

6

不能更改Long 值。它是不可变的。检查这个那个以获取更多信息

于 2013-03-10T14:57:59.933 回答
3

java.lang.Long不可变的,唯一的方法是将修改后的值重新分配给先前的引用。

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

public void someOtherMethod() {
    Long l = 22235637334634263464L;
    l = someMethod(l);
}
于 2013-03-10T14:57:53.623 回答
1

Long 在 Java 中是不可变的。您可以通过以下方式在方法内更改它:

  1. 把它包起来
  2. 使用 AtomicLong
  3. 返回更改的值并在方法外重新分配它
于 2014-02-25T11:21:32.513 回答