通过另一个类更改静态变量

Den*_* Do 1 java java-ee

我有一个静态变量的问题我有2个类:

public class Test2 {

    public static boolean bool;
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        bool = true;
        int run=0;
        while (bool==true) {
            System.out.println("Test 2 "+run);
            System.out.println(bool);
            run++;
        }
    }
    public static void setBool(boolean temp){
        bool = temp;
    }
}
Run Code Online (Sandbox Code Playgroud)

public class Test3 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Test2.bool = false;

    }

}
Run Code Online (Sandbox Code Playgroud)

问题是当我运行Test2来执行循环,然后我运行Test3来终止Test2的循环,但它不起作用.

如何通过Test3更改Test2的静态变量?

Max*_*tin 8

当您在Test3中编写时:Test2.bool = false;实际上您调用了另一个实例.

main的代码中有2个方法,因此您可以创建2个不同的应用程序.

确保国旗不会改变.

  • @PrasadKharkar是的,如果启动两个主要方法,则将有两个JVM实例。 (2认同)