整数引用已传递给方法,但未更改

时间:2019-07-31 19:49:16

标签: java

我正在抽象一个类中的某些东西,因此希望将不同的类变量(字段)传递给相同的方法并使它们递增。我发现即使将该字段传递给方法,该字段也没有被修改。

我有以下简化代码。首先是启动类变量/字段的行,然后是调用方法的构造函数,然后是方法。

public class Demo {
  public Integer countOfOnlyOneSameInTop12 = 0;

  Demo() {
    summarize(countOfOnlyOneSameInTop12);
  }

  private void summarize(Integer countOfOnlyOneSameInTop12) {
    countOfOnlyOneSameInTop12++;
    countOfOnlyOneSameInTop12++;
    countOfOnlyOneSameInTop12++;
    System.out.println(countOfOnlyOneSameInTop12); // 3
  }

  public static void main(String[] args) {
    Demo demo = new Demo();
    System.out.println(demo.countOfOnlyOneSameInTop12); // 0
  }
}

单步执行时,我希望在类级别看到countOfOnlyOneSameInTop12递增,因为它是由调用代码行传递给方法的。但是,即使方法内部的变量值确实增加了一个,类变量/字段的值也不会改变。

那么,根据专家,这是一个价值传递问题。

然后我的问题是,如何解决这个问题?我想在方法内部添加类变量的值,并且想对该类变量/字段进行抽象化以便运行通过相同的方法。

我需要整数包装类吗?

我采用错误的方法吗?增加类级计数器似乎是合理的。

我看到以某种形式尝试此操作的唯一替代方法是一堆代码重复。

有关如何解决Integer问题的信息,请参见下面的评论。

0 个答案:

没有答案