无法使用日历

时间:2016-05-25 15:53:20

标签: java

我正在尝试使用所需的构造函数

创建列车时刻表的多个对象
public Station(String city, Calendar arrival, Calendar departure, int day)

然而,当我创建对象时,我无法通过到达和离开时间,因为20:30等被认为是int。我想在构造函数中将Calendar更改为int,但显然必须使用Calendar。

Station stop1= new  Station("Vancouver",null , 2030, 1)

这是希望我尝试创建,但就像我说它不会采取参数。

所以很明显我需要在这里开箱即用,并开始搞乱日历,但我不确定我是否应该在下面的构造函数中这样做:

 public Station(String city, Calendar arrival, Calendar departure, int day){    
    this.city=city;
    this.arrival=arrival;
    this.departure=departure;
    this.day=day;
}

或者如果我必须创建一些新方法并将它们组合在一起。在我的研究中,我遇到了一个方法,我改变了一点,但我仍然无法使用"到达"的那些参数将其实现到我的对象创建中。和"离开"。

private static Calendar getCalendar(int hour, int minute) {
    Calendar c = Calendar.getInstance();
    c.set(Calendar.HOUR_OF_DAY, hour);
    c.set(Calendar.MINUTE, minute);         
    return c;
}

所以我想我想知道是否有人可以提出一些提示,指出我正确的方向,也许我应该在网上查找。这是我的任务中最后也是最难的问题,我甚至无法创建10个对象来启动列车时刻表。

2 个答案:

答案 0 :(得分:0)

我喜欢复合方法。

public StationAdapter {

   private readonly Station station;

   public StationAdapter(String city, int arrival, int departure, int day) {
   // Create station 

   }   
}

或最终构建器模式

答案 1 :(得分:0)

  

我很想在构造函数中将Calendar更改为int,但显然必须使用Calendar完成。

我不确定你的意思是什么,但是我们可以说出于某些原因你更喜欢保持现在的构造函数,那么你需要对你已发布的代码做什么就是这样

Station stop1= new  Station("Vancouver",null , getCalendar(20, 30) , 1)

否则你可以按照其他答案的建议去做