2013-03-15 8 views
-1

В моем классе Driver:Вызов метода из объекта на начало очереди

for (systemClock = 0; systemClock < 200; systemClock = (systemClock + 1)){ 
     if(((inputQueue.query()).arrivalTime()) == systemClock) 
      System.out.println(((inputQueue.remove()).removalTime())); 
    } 

В классе Работа:

public int arrivalTime() 
{ 
    return arrivalTime; 
} 

Моя проблема заключается во второй строке кода.

if(((inputQueue.query()).arrivalTime()) == systemClock) 

В классе мы сделали основной QueueObject, с помощью метода query() который возвращает найденный объект в передней части очереди. Каждый объект - это работа, в которой есть различные переменные и методы (все, что имеет значение в этом случае, - это «Время прибытия» этого объекта). Я пытаюсь вернуть эту строку кода для возврата объекта и вызвать метод arrivalTime()/узнать время прибытия от этого конкретного объекта.

Edit: Я получаю ошибку компиляции «не может найти символ - метод ArrivalTime()»

Решение Edit: Извините за путаницы/плохих парней пост. Я извиняюсь. Вот решение, которое я получил, чтобы работать. Мне пришлось отбросить объект, который вытащил из очереди в качестве объекта Job.

if((((Job)inputQueue.query()).arrivalTime()) == systemClock) 
+0

Э-э ... Каков ваш вопрос? – millimoose

+0

Вы не объяснили, в чем проблема с кодом, который вы опубликовали. Вы говорите: «Моя проблема во второй строке кода» - какая «проблема»? Вы также не задавали вопрос. –

+0

стреляй в меня плохо! Проблема в том, что я получаю ошибку при компиляции. Он выделяет эту строку и говорит, что не может найти символ «method arrivalTime()» –

ответ

0

Попробуйте удалить лишнюю скобку, и (на всякий случай), используйте неравенство:

if (inputQueue.query().arrivalTime() >= systemClock) { 
    // ... 
} 

Я предполагаю, что ваш метод query() возвращает Job объект (если он не , то есть проблема с вашим дизайном Queue).


Итак, ваша проблема в том, что символ не найден.

Некоторые советы:

  1. является метод ArrivalTime() отмечены как частные? Если это так, оно должно быть общедоступным.
  2. Каков тип, возвращаемый методом? Он должен иметь тот же тип, что и systemClock, и помните, что вы можете использовать == только числа (int, long, double, ...). Если тип не сопоставим с ==, вам нужно создать метод compareTo() или equals()
+0

Метод запроса работает точно так, как должен. Мне нужно только вернуть метод, если время прихода равно EQAUL TO (==) системным часам. Так что это не сработает, я думаю. –

+0

@StephenGilardi Это случается, когда вы не спрашиваете ** полный вопрос ** – Barranka

+0

Прошу прощения.Я обновил исходный вопрос с моей проблемой. –

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