2013-04-27 121 views
0

我是新来的java,我找了一个解决方案并没有找到它。访问数组对象内部的对象java

我有旅行对象的“Trip [] _data”数组。

“旅行”对象使用“日期”类来表示旅行出发日期,内部旅行类theres一个布尔方法“sameDepartureDate”得到一个旅行对象和完成均衡,如果它有相同的出发日this.object 。

我在“Date”里面有一个名为“equals”的公共方法。它获取Date对象并完成等于this.object。

旅行类中的方法sameDepartureDate是:

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

我需要检查数组内许多旅行如何使用相同的出发日期。

换句话说,如果给定的“Date对象”等于行程对象内的数组[i]日期对象。 (使用Date类的equals方法,或使用Trip类的“sameDepartureDate”)

如何从数组对象的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; 

} 

它的功课,为此我不能建立旅行/日期内的新方法类。

我可以根据需要在当前类中创建新的私有方法。

我不知道如何将_data [i]投射到“Date”对象?当我完成均衡时,我不需要包含其他数据。

感谢您的帮助:-)

+2

你可以发布整个Trip课吗? – 2013-04-27 07:33:28

+0

_data [i]包含'旅行',你不能将它转换为'日期' – sanbhat 2013-04-27 07:46:12

+0

邑,我明白了,谢谢:-)像阿布说的,我没有删除'(日期)'铸造和使用Trip方法'getDepartureDate()'然后'等于'它的日期对象。 – user2325513 2013-04-27 11:02:28

回答

0

你几乎没有,只是改变这一点:

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

只是删除(Date)铸造,你在里面做else if因为if需要里面的一个布尔值支架

+0

谢谢,我试过了,但_departureDate是Trip内的私人内容。有没有其他方式调用_data [i]中的日期对象? – user2325513 2013-04-27 07:54:40

+0

你可以使用public accessor方法,看我更新的回答 – Abubakkar 2013-04-27 08:16:50

+0

O.k!谢谢你:-))现在它工作正常,但不知何故,我必须用j ++替换j = j ++,我不知道为什么......:/非常感谢你! – user2325513 2013-04-27 09:46:23