如果我有一些简单的课程,例如。问题是此类的实例 B 会影响实例 A 的j。
public class Tester {
private static int j;
public Tester() {
}
public void setJ(int i){
this.j = i;
}
public int getJ() {
return j;
}
}
在我的现实世界应用程序中,j需要static(所以private static类可以使用它)。但是,当我static在上面的示例中制作它时遇到了一个问题。如果我们创建这个类的两个单独的实例,我可以显示问题:
Tester testOne = new Tester();
Tester testTwo = new Tester();
testOne.setJ(1);
testTwo.setJ(2);
System.out.println(testOne.getJ()); //returns 2
然后通过在 中设置静态变量testTwo,它会覆盖我之前为 中的静态变量设置的内容testOne。如果我要删除staticthenj将是不可变的testTwo.setJ(2),但我不能拥有这个。
我该如何解决这个问题?