如何在java中通过引用传递值

str*_*ker 6 java function parameter-passing

public class JavaApplication6 {

    public static void a(int b)
    {
        b++;
    }
Run Code Online (Sandbox Code Playgroud)

我正在调用函数a并传递变量b,目的是像C++引用(&b)一样递增它.这会有用吗?如果没有,为什么?

    public static void main(String[] args) {

        int b=0;
        a(b);
        System.out.println(b);
    }

}
Run Code Online (Sandbox Code Playgroud)

nas*_*kin 3

虽然您无法真正使用int(整数的原始类型)来完成此操作,但您可以使用AtomicInteger完成非常类似的操作。只需在类的实例上调用getAndIncrement方法即可。像这样的东西:

public static void a(AtomicInteger b) {
    b.getAndIncrement();
}
Run Code Online (Sandbox Code Playgroud)

(请注意,您也不能使用 java.lang.Integer 执行此操作,因为 java.lang.Integer 是一个不可变的类。)