Поэтому у меня есть два класса:доступ статической переменной из другого класса
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
класс?
Не использовать статические переменные. –
Вызывается ли вышеуказанный код? Я не понимаю, как это будет? – sstan
Покажите свой стек и укажите точную строку, которая его вызывает. –