我正在抽象一个类中的某些东西,因此希望将不同的类变量(字段)传递给相同的方法并使它们递增。我发现即使将该字段传递给方法,该字段也没有被修改。
我有以下简化代码。首先是启动类变量/字段的行,然后是调用方法的构造函数,然后是方法。
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问题的信息,请参见下面的评论。