Java 的 Date(...) 构造函数已弃用;那是什么意思?

2022-08-31 22:30:30

我正在尝试创建一个这样的:Date

date = new Date(year-1900, mon-1, day, hrs, min, sec);

Eclipse给了我这个警告:“构造函数被弃用了”。Date(int, int, int, int, int)

不推荐使用构造函数意味着什么,我该怎么办?


答案 1

弃用的字面意思是不赞成,但更准确的翻译将被停用已弃用意味着此方法仍然可用,但不应使用它。它将逐步被淘汰。有一种新的方法可以做同样的事情。不推荐使用的方法用特殊的 Javadoc 注释标记:

/**
 *@deprecated Please now use newMethod()
 *@see newMethod()
 */

用途

  • Calendar.set(year + 1900, month, date, hrs, min)

  • GregorianCalendar(year + 1900, month, date, hrs, min).

API 文档所示


答案 2

这意味着你不应该在新代码中使用它。如果现在有更好的方法来实现某些目标,则通常是这种情况,但是为了向后兼容,保留了旧方法。

相反,你可以使用API,正如完整的消息希望向你建议的那样 - 或者(更好的IMO)你可以使用Joda Time或Java 8中的软件包(参见教程)。这两者都是优越得多的日期/时间 API。到Calendarjava.time

当涉及到已弃用的API时,如果编译器消息没有建议替代方案,那么Javadoc总是值得一看的 - 在这种情况下,它建议使用.Calendar.set(...)