2015-04-03 2 views
0

Так что я следующий список массива:Java ссылка в ArrayList от метода вне основного метода

ArrayList <Employee> employees = new ArrayList<>(); 

В моем основном методе я создаю их экземпляры

public static void main(String[] args){ 
    Employee test = new Manager("john doe", 1000); //manager is subclass 

} 

У меня есть метод, который проверяет что объект-сотрудник еще не существует, метод равных определяется в подклассах

public void addEmployee(Employee newEmployee){ 
    for (int i = 0; i < employees.size(); i++){ 
      if(newEmployee.equals(employees.get(i))){ 
       ......... 
      } 
     } 
} 

Theres mor е к нему выше, но вы понимаете. Мне нужно ссылаться на ArrayList, но если я создаю экземпляр массива вне основного метода, я не могу добавить к нему никаких переменных, получив ошибку «нестатический метод не может ссылаться на статический контекст», что имеет смысл, но я не знаю, как использовать этот метод, потому что я не могу объявить его в основном методе.

+1

объявим его как 'static' переменной. В чем проблема? –

+0

Как связаны эти три сегмента кода? Непонятно, что вы пытаетесь сделать или что мешает вам. – David

+0

объявить тестовую переменную как статическую? Я делаю это, и у меня появляется ошибка, говорящая о незаконном запуске выражения. – Burninrock24

ответ

2

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

static ArrayList <Employee> employees = new ArrayList<>(); 

public static void addEmployee(Employee newEmployee){ 
    for (int i = 0; i < employees.size(); i++){ 
      if(newEmployee.equals(employees.get(i))){ 
       ......... 
      } 
     } 
} 

@muued имеет точку. В java есть другие структуры данных, а затем ArrayList. В случае сомнений, я смотрю на это:

enter image description here

+0

Спасибо, я не знал, что я могу объявить ArrayList как статический, как это, и до сих пор разрешить ему изменять его элементы и по-прежнему правильно работать. – Burninrock24

+0

@BoristheSpider заслуживает этого. Сначала он заметил это. – CandiedOrange

+0

Я новичок в этом месте, есть ли способ дать ему лучший ответ? – Burninrock24

Смежные вопросы