This question already has answers here:
Is Java “pass-by-reference” or “pass-by-value”?
                                
                                    (86个答案)
                                
                        
                                3年前关闭。
            
                    
我想将对变量的引用存储在某个类中,并在此类中对其进行操作。操作应修改原始变量。
特别是以下代码应打印1而不是0。

class Test {
    private Long metric;

    public Test(Long m) {
        this.metric = m;
        ++this.metric;
    }
}

class Ideone
{
    public static void main (String[] args) throws java.lang.Exception
    {
        Long metric = 0L;
        Test test = new Test(metric);
        System.out.println(metric);
    }
}


如何实现这种行为?

最佳答案

您可以用可变的Long替换AtomicLong。但是,您将失去自动装箱功能。

10-07 16:03