我知道这可能对我来说很愚蠢,但是我花了几个小时来解决这个小问题。

基本上,我有2个对象使用相同的ArrowControl类:

public class ArrowControl extends BoundaryBox{
    private static float value = 0;

    public ArrowControl() {}

    public float getValue() {
        return value;
    }

    public void setValue(float newValue) {
        value = newValue;
    }
}


但是,当我在另一个这样的类中使用它们时:

public Panel(Context context, AttributeSet attrs) {
    ArrowControl upControl = new ArrowControl();
    ArrowControl downControl = new ArrowControl();
    upControl.setValue(1);
    //upControl.getValue() == 1
    downControl.setValue(2);
    //upControl.getValue() == 2
}


每当设置为upControl.getValue()等于1时,我就登录。然后在设置downControl之后再次登录时,upControl.getValue()等于downControl.getValue()等于。

有人知道为什么或如何解决此问题吗?

最佳答案

因为您已将其定义为静态。

private static float value = 0;


因此,这两个实例共享它。

关于java - 共享重复方法的单独对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20749005/

10-10 05:37