访问数组对象java中的对象

时间:2013-04-27 07:31:08

标签: java arrays methods

我是java的新手,我确实在搜索解决方案而没有找到它。

我有Trip文件的“Trip [] _data”数组。

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

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

Trip类中的sameDepartureDate方法是:

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

我需要检查阵列中有多少Trips使用相同的出发日期。

换句话说,如果给定的“Date对象”等于trip对象内的array [i] date对象。 (使用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]转换为“Date”对象???完成均衡后,我不需要包含其他数据。

感谢您的帮助: - )

1 个答案:

答案 0 :(得分:0)

你几乎就在那里,只需改变它:

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

只需删除您在(Date)内执行的else if投射,因为if需要括号内的布尔值