我需要知道如何解决这些错误提示:
Note: Summer.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
这是我的代码:
import java.util.Calendar;
import java.util.*;
class Summer
{
public static void main(String[] args)
{
Date d1 = new Date();
Date j21 = new Date(d1.getYear(), 6, 21);
if(d1.before(j21)) {
long diff = j21.getTime() - d1.getTime();
diff = diff / (1000 * 60 * 60 * 24);
System.out.println("There are " + diff + " days until June 21st" );
}
else {
long diff = d1.getTime() - j21.getTime();
diff = diff / (1000 * 60 * 60 * 24);
diff = 365 - diff;
System.out.println("There are " + diff + " days until June 21st" );
}
}
}
答案 0 :(得分:6)
这不是错误,而是一条警告信息。
您的程序会在您编写时运行。
编译器为您提供此警告的原因是您使用了已弃用的函数调用。
通过使用-Xlint重新编译,编译器意味着通知您需要重新编译程序
javac -Xlint abc.java
如果这样做,编译器将告诉不推荐使用哪些方法,以便删除它们。
“基本上如果某个方法被弃用,则会提供更好的实现”,因此编译器会弹出一个警告,告知您为尝试使用的内容提供了更好的内容“
PS:始终建议不要使用弃用的方法。
希望它有所帮助: - )
答案 1 :(得分:5)
这是一个警告。您正在使用已弃用的函数调用或对象。您可以像这样重新编译以找出它发生的位置:
javac -Xlint:deprecation Summer.java
通常,使用已弃用的库是个坏主意。它们可能会在下一个版本中消失。
答案 2 :(得分:1)
如消息所示,您需要使用-Xlint
命令行切换到javac
命令进行编译,如下所示:
C:\Temp>javac -Xlint Summer.java
Summer.java:22: warning: [deprecation] getYear() in java.util.Date has been deprecated
Date j21 = new Date(d1.getYear(), 6, 21);
^
Summer.java:22: warning: [deprecation] Date(int,int,int) in java.util.Date has been deprecated
Date j21 = new Date(d1.getYear(), 6, 21);
^
2 warnings
答案 3 :(得分:0)
Note: filename.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
这个错误。但它实际上是一个错过try {} catch(){}块的警告 您可以通过编写以下语句来查看受影响的代码
javac -Xlint:unchecked filename.java
它将显示未经检查的必须通过用户定义或系统定义异常代码
捕获的所有异常
答案 4 :(得分:-2)
那些不是错误。只是警告。那些不会影响你的计划。但是,由于您将来使用已弃用的util类Date,可能会影响您的程序。
最好使用java.util.Calendar
代替java.util.Date
这提供与Date相同的功能,并且还有一些功能