如何在java中更新java.lang.long的long值?

如何在java中更新java.lang.long的long值?,java,Java,我将一个java.lang.Long类实例传递给一个方法(显然是作为引用),我想知道是否可以修改它的Long值,以便调用者可以获得修改后的值。我已经查看了java.lang.Long的文档,但是似乎不存在这种类型的setter方法。这是正确的吗?是一个不可变的,唯一的方法是将修改后的值重新分配给以前的引用 public Long someMethod(Long l) { l = watever; return l; } public void someOtherMethod()

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

是一个不可变的,唯一的方法是将修改后的值重新分配给以前的引用

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

public void someOtherMethod() {
    Long l = 22235637334634263464L;
    l = someMethod(l);
}
是一个不可变的,唯一的方法是将修改后的值重新分配给上一个引用

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

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

您不能更改长值。它是不变的。
检查并获取更多信息

您不能更改长值。它是不变的。
检查并获取更多信息

Long在Java中是不可变的。可以通过以下方式在方法内部对其进行更改:

  • 包起来
  • 使用原子长
  • 返回更改后的值,并在方法外部重新签名

  • Long在Java中是不可变的。可以通过以下方式在方法内部对其进行更改:

  • 包起来
  • 使用原子长
  • 返回更改后的值,并在方法外部重新签名

  • 无论如何,如果不通过本机代码或反射对VM进行黑客攻击的话,这是不行的。这当然是一个非常糟糕的主意。无论如何,如果不通过本机代码或反射对VM进行黑客攻击的话。这当然是一个非常糟糕的主意。@Chris但是Long是最终的和不可变的,不是吗?@Chris啊,我明白了,我现在编辑了它。这不是我的本意:)@Chris,但Long是最终的,不可变的,不是吗?@Chris啊,我明白了,我现在编辑了它。但这不是我的本意:)