我正在从 Java 1.1 迁移。到 Java 5。
我注意到某些方法已被弃用,例如 java.util.Date 有一个已弃用的 getYear() 方法。
我的问题是,如果 getYear() 方法在 1.1 中保持不变,它是否仍然在 Java 5 中起作用
它仍然会起作用,即使它已被弃用。他们将其替换为“更好的”(Calendar.get(Calendar.MONTH).),但出于向后兼容的目的,保留原件。所以在你的情况下使用它是没有问题的。
是的,它会照原样工作。它只能在未来的 Java SE 版本中删除。弃用纯粹是文档性的,只是给您同时更新代码的空间。
目前,您应该使用JodaTime APIjava.util.Calendar
的方法或更改进的方法。标准 Java SE 中日期/时间 API 的替换将与 JodaTime 类似,并且仍将到来 ( JSR-310 )。本来是为 JDK7 计划的,可惜好像来不及了。
它会起作用,但开始考虑替代方案可能不是一个坏主意。
getYear 已被弃用是有原因的;与 Date 关联的年份实际上取决于 Locale,因此已移至 Calendar 类。Date 类的这种重构,它从数据本身中提取 Locale 依赖项,您在其他 Date/Calendar 相关功能中也可以看到这一点。因此,在适当的情况下移动到日历可能是明智的。
也就是说,我不会用棍子触摸 Java 的日期/日历的东西,我更喜欢 Apache Commons Lang 和其他东西来处理大多数与日期/时间相关的东西。我还听说尤达在这方面很受欢迎。