0

为什么getCal()有效但getCal2()无效?在 Eclipse 中,我收到一条错误消息“无法返回无效结果”

public Calendar getCal(long milliseconds) {
    Calendar c = Calendar.getInstance();
    c.setTimeInMillis(milliseconds);
    return c;
}

public Calendar getCal2(long milliseconds) {
    return Calendar.getInstance().setTimeInMillis(milliseconds);
}
4

2 回答 2

2

发生这种情况是因为方法返回类型是void.

这是该方法的签名

public void setTimeInMillis(long millis)

Calendar花点时间给它,然后返回Calendar

Calendar anotherCalader= Calendar.getInstance();
 anotherCalader.setTimeInMillis(timeInMillies);
 return anotherCalader;

http://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html#setTimeInMillis(long)

于 2013-09-15T12:30:10.213 回答
1

因为Calendar 类setTimeInMillis(milliseconds)中的方法返回 void(无)。

如果您想要返回日历,您可以做的是:

public Calendar getCal2(long milliseconds)
{
    Calendar cal = Calendar.getInstance();
    cal.setTimeInMillis(milliseconds);
    return cal;
}

或者您可以创建一个返回 void 的方法:

public void getCal2(long milliseconds)
{
    Calendar.getInstance().setTimeInMillis(milliseconds);
}

如果方法返回 void,则意味着您不能将任何变量设置为该方法返回的值。a_variable = someMethodThatReturnsVoid();将给出编译时错误,因为该方法不返回任何内容。

于 2013-09-15T12:30:03.467 回答