【发布时间】:2015-09-22 06:12:51
【问题描述】:
有没有什么方法可以从另一个构造函数调用一个构造函数而不立即获得它的参数?
我在尝试为我的 SimpleDate 类创建一个构造函数时遇到了这个问题,该类接受一个毫秒时间参数并使用另一个构造函数来创建类(下面的代码)。我遇到的问题是构造函数调用必须在第一行,但我并没有真正看到要在正确的时间获得Calendar 实例,而无需先在前一行设置时间(以毫秒为单位)。我没有看到如何在一行上做到这一点,因为setTimeInMillis 是一个 void 方法,我认为在调用方法后不可能返回值(如果它比我非常想知道如何作为好吧)。我意识到这整件事并不是完全必要的,但我确实想知道这是否可行,如果可行,我会怎么做。
public SimpleDate(long timeMillis) {
this(Calendar.getInstance().setTimeInMillis(timeMillis));//Obviously this doesn't work because setTimeInMillis is a void method
}
public SimpleDate(Calendar calendar) {
this.year = calendar.get(Calendar.YEAR);
this.month = calendar.get(Calendar.MONTH) + 1;
this.day = calendar.get(Calendar.DAY_OF_MONTH);
this.hour = calendar.get(Calendar.HOUR_OF_DAY);
this.minute = calendar.get(Calendar.MINUTE);
this.second = calendar.get(Calendar.SECOND);
}
【问题讨论】:
标签: java methods constructor calendar