2013-04-27 4 views
0

Я новичок в java, я искал решение и не нашел его.доступ к объекту внутри объекта массива java

У меня есть «Trip [] _data» массив объектов Trip.

Объект «Поездка» использует класс «Дата» для представления дат отправления поездки, класс «Внутри поездки» - это логический метод «sameDepartureDate», который получает объект «Поезд» и выполняет выравнивание, если у него тот же день отправления, что и этот. Объект ,

У меня есть открытый метод внутри «Дата», называемый «равно». Его объект Date Date и сделал равным this.object.

Метод sameDepartureDate внутри класса поездки являются:

public boolean sameDepartureDate (Trip other){ 
    if ((_departureDate.equals(other._departureDate))) 
     return true; 
    else return false; 
} 

Мне нужно, чтобы проверить, сколько поездок внутри массива, используя те же даты вылета.

Другими словами, если данный объект «Дата» равен массиву [i] объекта даты внутри объекта поездки. (используя метод equals из класса Date или используя «sameDepartureDate» из класса Trip)

Как я могу вызвать метод из класса Trip/Date внутри объекта массива для проверки с объектом Date?

Я пытался построить метод, как это, но я получаю сообщение об ошибке «неконвертируемые типов, необходимые: Дата, найдено: логическую»

public int howManyTripsDeparture(Date date){ 
    //Setting default! 
    int j=0; 
    int i; 

    if (date==null){ 
     return j; 
    } 

    else for (i=0; i<_data.length; i++){ 
      if (_data[i]==null){ 
       j=j; 
      } 
      else if ((Date) _data[i].equals(date)){ //here is the problem :/ 
       j=j++; 
      } 
      else j=j; 
    } 
    return j; 

} 

Это домашние задания, для этого я не могу строить новые методы внутри Trip/Даты класс.

Я могу создать новые частные методы, как я хочу, в текущем классе.

Я не могу понять, как передать _data [i] в ​​объект «Дата» ??? Мне не нужны другие данные, которые он содержит, когда я делал выравнивание.

Спасибо за помощь :-)

+2

Можете ли вы опубликовать весь класс 'Trip'? –

+0

_data [i] содержит 'Trip', и вы не можете наложить его на' Date' – sanbhat

+0

Yap, я получил его, спасибо :-) Как сказал Абу, я удалил '(Date)' casting и использовал Trip метод 'getDepartureDate()' затем 'равно 'этому объекту date. – user2325513

ответ

0

Вы были почти там, просто изменить:

else if (_data[i].getDepartureDate().equals(date)){ //here is the problem :/ 
     j=j++; 
} 

Просто удалите эту (Date) отливку, что вы делаете внутри else if потому if требует логического значения внутри кронштейн

+0

Спасибо, я попробовал, но _departureDate является частным внутри поездки. есть ли другой способ вызова только объекта даты внутри _data [i]? – user2325513

+0

вы можете использовать общедоступный метод доступа, см. Мой обновленный ответ – Abubakkar

+0

O.k! Спасибо :-)) теперь он работает нормально, но почему-то мне пришлось заменить j = j ++ только j ++, я понятия не имею, почему ...:/В любом случае спасибо вам большое! – user2325513

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