从不同的类访问静态变量

时间:2015-06-24 01:48:06

标签: java nullpointerexception static-variables

所以我有两个班级:

使用Main方法的public static void main(String args[])课程 和Voice类访问该类的静态变量。

在主类中是自己使用的方法,并且必须是静态的以及它的一些变量。

所以我在Main类中有一个静态变量(在public static void main(String args[])方法中创建/填充。这就是为什么这种情况很特殊),其他类应该能够访问。

这是一个正在发生的事情的例子:

public class Main(){

    public static int variable;

    /*
        Unrelated methods go here.
    */
    public static void main(String args[]){

        Voice v = new Voice();//This is just here for the code to make sense.
        variable = 5;

        v.doSomething();

    }
}

public class Voice(){

    public void doSomething(){
        System.out.println(Main.variable);
    }

}

doSomething()中调用Voice方法后,会导致nullPointerException

我可以通过将variable变量传递给Voice类来解决这个问题,但是从长远来看,有更简单的方法可以解决这个问题,例如,我需要使用更多比Main类中的一个静态变量?

2 个答案:

答案 0 :(得分:0)

您的代码出现语法错误。你可以用这个

class Main{

    public static int variable;

    /*
        Unrelated methods go here.
    */
    public static void main(String args[]){

        Voice v = new Voice();//This is just here for the code to make sense.
        variable = 5;

        v.doSomething();

    }
}

class Voice{

    public void doSomething(){
        System.out.println(Main.variable);
    }

}

输出为5

答案 1 :(得分:-1)

您应该执行以下操作

public class Main{

    public static int variable;

    /*
        Unrelated methods go here.
    */
    public static void main(String args[]){

        Voice v = new Voice();//This is just here for the code to make sense.
        variable = 5;

        v.doSomething();

    }
}

 class Voice{

    public void doSomething(){
        System.out.println(Main.variable);
    }

}