переменные не могут найти класс Main Driver, когда на него ссылаются - PullRequest
0 голосов
/ 26 октября 2011

У меня проблемы со статическими и нестатическими ошибками. с переменными sertain, которые не могут найти основной метод.

Я разработал программу, создав отдельный файл, который создает экземпляр класса. вот так:

public class StartUp {
    public void main(String[] args) {
        MainDriver theMainDriver = new MainDriver();
        theMainDriver.start();
    }
}

Внутри определенных классов в программе она передает переменные обратно в mainDriver. Но когда я пытаюсь сослаться на него, я получаю сообщение об ошибке «не могу найти переменную символа theMainDriver».

например:

 public void getEmployee()  {
      theMainDriver.setEmployee(theEmployee);
 }

 public void getEmployeeID() {
     theMainDriver.setEmployeeID( randomIDno);
 }

как я могу объявить основной драйвер таким образом, чтобы он был более видимым для других классов. Он находит основной драйвер, если я делаю это MainDriver.setEmployeeID (randomIDno); но тогда он имеет проблемы с нестатическим методом, на который нельзя ссылаться из статического контекста.

Ответы [ 3 ]

0 голосов
/ 26 октября 2011

Во-первых, объявление main должно быть похоже на

public static void main(String[] args)

Я не могу понять, как вы запускаете программу, не делая ее статичной

Во-вторых, вы не указали структуру вашего класса MainDriver. Может быть, это не публично. Так что сделайте ваш класс MainDriver публичным. Я думаю, что это решит проблему

0 голосов
/ 26 октября 2011

Вы можете сделать следующее:

public class StartUp {

    public static MainDriver theMainDriver;

    public void main(String[] args) {
        theMainDriver = new MainDriver();
        theMainDriver.start();
    }
}

И звоните из любого класса следующим образом:

Startup.theMainDriver.setEmployeeID(randomIDno);
0 голосов
/ 26 октября 2011

3 вещи, если произошла ошибка компиляции.

1) Является ли MainDriver общедоступным?
2) если MainDriver находится в другом пакете, вы import это?
3) Если MainDriver из другого пакета или другого проекта или внешнего фляги, вы дали это в classpath?

также, как сказал другой парень, вы получили static часть main(String[] args)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...