不建议使用构造函数Date(...)。 这是什么意思? (Java)
我试图创建一个Date(int, int, int, int, int)像这样:
date = new Date(year-1900, mon-1, day, hrs, min, sec);
Eclipse发出警告:“不赞成使用构造函数Date(int, int, int, int, int)”。
不赞成使用构造函数是什么意思,我该怎么办?
9个解决方案
43 votes
从字面上弃用意味着被拒绝,但更准确的翻译将被淘汰。 不推荐使用意味着此方法仍然可用,但您不应使用它。 它将逐步淘汰。 有一种新方法可以执行相同的操作。 不推荐使用的方法带有特殊的Javadoc注释:
/**
*@deprecated Please now use newMethod()
*@see newMethod()
*/
用:
GregorianCalendar(year + 1900, month, date, hrs, min)
要么
GregorianCalendar(year + 1900, month, date, hrs, min).
如API文档所建议。
JuanZe answered 2020-07-25T15:13:59Z
17 votes
这意味着您不应该在新代码中使用它。 如果现在有了更好的方法来实现某些目标,通常会出现这种情况,但是为了保持向后兼容性,保留了旧方法。
相反,您可以使用Calendar API,如完整消息所希望的那样-或(更好的是IMO)您可以使用Java 8中的Joda Time或Calendar.set(...)软件包(请参见教程)。 这两个都是优越的日期/时间API。 到
对于不推荐使用的API,如果编译器消息中没有建议替代方法,则始终值得一看Javadoc-在这种情况下,建议使用Calendar.set(...)。
Jon Skeet answered 2020-07-25T15:14:29Z
5 votes
这意味着您通常不应该在新代码中使用它,因为它很危险,或者因为存在更好的替代方法。 当在不推荐使用的代码中使用或覆盖不推荐使用的程序元素时,编译器会发出警告。
对于您的情况,可以使用java.util.Date类代替java.util.Date。
顺便说一下,在Java 8和更高版本中,这些旧类已被新的java.time包(教程)所取代。 受Joda-Time启发,由JSR 310定义,并由ThreeTen Extra项目扩展。 旧的类仍然存在,您可以继续使用它们(同时避免使用不赞成使用的部分),但是建议您过渡到新的类。
missingfaktor answered 2020-07-25T15:14:58Z
4 votes
弃用意味着它是做某事的旧方法或旧方法,应避免使用。
根据本文档[http://java.sun.com/j2se/1.4.2/docs/api/java/util/Date.html,],请使用Calendar.set(...)。
Daniel A. White answered 2020-07-25T15:15:25Z
3 votes
这是一个代码片段,可帮助您迁移代码。 两种打印是相同的。
import java.util.Calendar;
import java.util.Date;
public class Tinker {
public static void main(String[] args) {
int Y = 2015; // Year 2015
int M = 11; // 0..11 -- December
int D = 15; // 15th
int H = 16; // 4:00 PM
int MN = 28; // 4:28 PM
int S = 41; // 4:28:41
Date d = new Date(Y-1900,M,D,H,MN,S);
System.out.println(d);
Calendar c = Calendar.getInstance();
c.set(Y, M, D, H, MN, S);
d = c.getTime();
System.out.println(d);
}
}
输出:
Tue Dec 15 16:28:41 CST 2015
Tue Dec 15 16:28:41 CST 2015
ChrisCantrell answered 2020-07-25T15:15:54Z
2 votes
由于已弃用,意味着您不应该真正使用它。 您可以改用日历从字段生成日期。
Paul McKenzie answered 2020-07-25T15:16:14Z
1 votes
不推荐使用,则不建议使用此构造函数,并且在以后的Java版本中可能会删除它。 使用日历API。
EJB answered 2020-07-25T15:16:34Z
0 votes
通常不建议使用,表示不鼓励使用该功能。
由于某种原因或其他原因,已经决定如果没有Java,Java会更好(因为存在更好的替代方法,因此您应该使用它),因此可能会将Java从将来的版本中删除。 弃用基本上是一个警告,“尽管将来我们可以将其保留更长的时间,以便将来有机会将其从代码中删除,但将来可能会删除它”
jalf answered 2020-07-25T15:16:59Z
0 votes
弃用意味着核心API和其他Java库不依赖于它,它表示您有更好的方法。
Premraj answered 2020-07-25T15:17:19Z