如何获取java变量的更新值?

时间:2016-05-21 18:14:36

标签: java variables object reference

我试图从其他类获取变量的更新值。变量的值正在更新,但仅适用于它自己的类。而另一个试图通过引用访问值的类仍然是旧值。假设private boolean中有一个class1变量,它继续更新。 虽然class2通过boolean访问了class1 getter method变量,但是这样的话:

CLASS 1 CODE:

class A {
    private boolean state;
    boolean getState() {
        return state;
    }
}

此处变量state的值继续按ActionEvent

进行更新
CLASS 2 CODE:

class B {
    void go() {
        A a = new A();
        while(true) {
            if(a.getState()) {
                //CODE
            }
        }
    }
}

在此,我始终在state中获取class B变量的原始值,尽管该值正在class A中更新。那么,如何从另一个类引用中获取变量的更新值?

  

编辑:   它有点奇怪但是当方法以某种方式调用或刷新时变量会更新。像这样:

CLASS 2 CODE:

class B {
    void go() {
        A a = new A();
        while(true) {
            System.out.println(a.getState());
            if(a.getState()) {
                //CODE
            }
        }
    }
}

在添加System.out.println(a.getState());之后,我们将获得更新后的值。请解释一下!

2 个答案:

答案 0 :(得分:2)

在每次循环迭代中创建一个新的A实例。 只需移动A a = new A();一行:

class B {
    void go() {
        A a = new A();
        while(true) {
            if(a.getState()) {
                //CODE
            }
        }
    }
}

答案 1 :(得分:0)

你可以在任何你需要的类中使用你的bollean来使它静止

CLASS 1 CODE:

class A {
    private boolean state;
       public static boolean getState() {
            return state;
    }
}

和第二课

CLASS 2 CODE:

class B {
    void go() {
        while(true) {
            if(A.getState == //true or false//) {
                //CODE
            }
        }
    }
}