0

我是java新手,我确实搜索了解决方案但没有找到。

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

“Trip”对象使用“Date”类来表示行程出发日期,Trip 类内部有一个布尔方法“sameDepartureDate”,它获取一个Trip 对象并完成均衡,如果它与this.object 的出发日相同。

我在“日期”中有名为“等于”的公共方法。它获取 Date 对象并完成了与 this.object 相同的操作。

Trip 类中的 sameDepartureDate 方法是:

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

我需要检查数组中有多少次使用相同的出发日期。

换句话说,如果给定的“日期对象”等于行程对象内的 array[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;

}

这是作业,因此我无法在 Trip/Date 类中构建新方法。

我可以在当前类中随心所欲地构建新的私有方法。

我不知道如何将 _data[i] 转换为“日期”对象???当我完成均衡时,我不需要它包含的其他数据。

谢谢您的帮助:-)

4

1 回答 1

0

你快到了,只要改变这个:

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

只需删除(Date)您在内部进行的转换,else if因为if在括号内需要一个布尔值

于 2013-04-27T07:40:28.760 回答