Java “为什么?”;无法返回无效结果";当日历以某种方式使用时会发生什么?

Java “为什么?”;无法返回无效结果";当日历以某种方式使用时会发生什么?,java,Java,为什么getCal()可以工作,但是getCal2()不能?在Eclipse中,我得到一个错误,说“无法返回无效结果” 因为中的方法setTimeInMillis(毫秒)返回void(nothing) 如果您希望返回日历,您可以执行以下操作: public Calendar getCal2(long milliseconds) { Calendar cal = Calendar.getInstance(); cal.setTimeInMillis(milliseconds);

为什么
getCal()
可以工作,但是
getCal2()
不能?在Eclipse中,我得到一个错误,说“无法返回无效结果”


因为中的方法
setTimeInMillis(毫秒)
返回void(nothing)

如果您希望返回日历,您可以执行以下操作:

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_变量=someMethodThatReturnsVoid()
将给出编译时错误,因为该方法不返回任何内容。

因为该方法
setTimeInMillis(毫秒)
在返回空值(nothing)时返回空值

如果您希望返回日历,您可以执行以下操作:

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_变量=someMethodThatReturnsVoid()
将给出编译时错误,因为该方法不返回任何内容。

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

这是该方法的签名

public void setTimeInMillis(long millis)
取另一个
日历
并设置时间,然后返回该
日历

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

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

这是该方法的签名

public void setTimeInMillis(long millis)
取另一个
日历
并设置时间,然后返回该
日历

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