java中的“代码弃用”

时间:2013-01-16 11:27:40

标签: java warnings

我使用日期类来获取当前小时的功能

Date date = new Date();
int t=date.getHours();

并且eclipse一直在抱怨代码弃用。一切都很好,但它一直警告我,有什么理由我应该改变它吗?获得当前时间有其他选择吗?

7 个答案:

答案 0 :(得分:1)

如果你看java.util.Date API

getHours()是一种弃用的方法

  

已过时。从JDK 1.1版开始,替换为   Calendar.get(Calendar.HOUR_OF_DAY)。

答案 1 :(得分:1)

当找到问题时,库的某些部分会被标记为已弃用,但设计人员认为现有部分的改进可能会破坏许多已经依赖旧行为的现有程序。 / p>

因此,他们保留现有部分,至少在一段时间内(为了保持现有资源的编译能力直到更新),而通常提供替代方案。

现在,关于Java的时间,大多数人推荐Joda time

答案 2 :(得分:1)

你应该改变它的原因是java.util.Date以许多微妙的方式被打破。您的代码可能在某些情况下工作而在其他情况下会失败(例如,当您在具有不同时区的计算机上运行它时,当一个黑客攻击您的应用程序时,当某人与序列化的Date对象混淆时,...... )

2013年,您不应再使用java.util.Date了。如果必须,请使用Calendar或更好joda-time library

答案 3 :(得分:0)

不推荐使用

Date#getHours

  

自JDK 1.1版开始,由Calendar.get(Calendar.HOUR_OF_DAY)取代。

答案 4 :(得分:0)

更改的原因是已弃用的代码在将来的版本中被“标记”以便删除,因此如果您计划在一段时间内维护它,则不应在代码中使用弃用的方法。
至于做什么从Date Javadoc获得时间:

As of JDK version 1.1, replaced by Calendar.get(Calendar.HOUR_OF_DAY).

答案 5 :(得分:0)

从JDK 1.1版开始,不推荐使用

Date.getHours。您应该使用java.util.Calendar.get(Calendar.HOUR_OF_DAY)代替:

Calendar c = Calendar.getInstance();
int t = c.get(Calendar.HOUR_OF_DAY);

答案 6 :(得分:0)

http://uk.answers.yahoo.com/question/index?qid=20081123050802AAL0gAm

基本上,您仍然可以使用该方法。但是接下来的几个版本的java可能不支持它。

顺便说一句,你可以使用Calendar类来解决这个问题。