以下是我写的代码:
import java.util.ArrayList;
import java.util.Date; public class Travel{ 
TravelLeg mid = new TravelLeg(); 
private String depart; 
private String destination; 
private Date departTime; 
private Date arriveTime; 
private String travelId; 
private String comment; 

ArrayList<TravelLeg> legs = new ArrayList<TravelLeg>();

public void add(TravelLeg mid){ 

legs.add(mid);

/*this.depart = mid.getDepart(); 
this.mid = mid; 
this.destination = mid.getDestination();*/ 
}

  public boolean check_date(){ 
if(!mid.getDepartTime().before(mid.getArriveTime())){ 
System.out.println("Time error!There is an overlap in time."); 
return false; 
}else return true; 

public void print(){ 

for (TravelLeg leg : legs) {
System.out.println("Start: " + leg.getDepart() 
+ " going to " + leg.getDestination());
}
for(TravelLeg leg:legs){
System.out.println("Start:"+leg.getDepartTime()+"Arrive:"+leg.getArriveTime());
}
//System.out.println(this.depart+this.mid.getDestination()+this.destination); 


public static void main(String[] args) {
TravelLeg leg1 = new TravelLeg();
leg1.setDepart("北京");
leg1.setDestination("上海");
   
TravelLeg leg2 = new TravelLeg();
leg2.setDepart("上海");
leg2.setDestination("哈尔滨");

Travel travel = new Travel();
travel.add(leg1);
travel.add(leg2);
travel.print();

}

但是有人说这样做好像不行,嗯,应该怎样改进呢?并且最后帮忙set个值检测一下,看看究竟符不符合出发时间与到达时间的比较

解决方案 »

  1.   

    嗯,我想像leg2.setDepart("上海"); 
    leg2.setDestination("哈尔滨"); 
    有具体的时间比较的实例,而不是要测试
      

  2.   

    首先你的出发时间和到达时间就没设置,好像不好比。
    第二你的时间比较函数check_date()虽然是正确的,但没看到在哪里调用过你的check_date(),也就比不出来了 。
    看看这样写行不行在你的add方法里实现比较public void add(TravelLeg mid){
    if(check_date(mid)){
       legs.add(mid); 
    }else{
       System.out.println("check_date(mid) return false");
    }
    } public boolean check_date(TravelLeg mid){ 
    if(!mid.getDepartTime().before(mid.getArriveTime())){ 
    System.out.println("Time error!There is an overlap in time."); 
    return false; 
    }else return true;