我需要知道如何修复这些错误注解:
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" );
}
}
}
6条答案
按热度按时间yb3bgrhw1#
这不是错误;这是一个警告信息。
你的程序会像你写的那样运行。
编译器发出此警告的原因是因为您使用了一个不推荐使用的函数调用。
通过“使用-Xlint重新编译”,编译器意味着通知您需要像这样重新编译您的程序:
如果这样做,编译器会告诉你哪些方法被弃用了,这样你就可以删除对它们的调用(如果某个方法被弃用了,它 * 通常 * 意味着有更好的实现可用,你应该使用它来代替被弃用的方法)。
ubby3x7f2#
这是一个警告。你正在使用一个过时的函数调用或对象。你可以像这样重新编译以找出它发生的位置:
一般来说,使用过时的库不是一个好主意,它们可能在下个版本中消失。
huus2vyu3#
如消息所示,您需要使用
-Xlint
命令行开关将其编译为javac
命令,如下所示:sqserrrh4#
{标题....“范围”:[“管道:20”:“读取”,“作业:103”:“write”]}“TARGET”未被识别为内部或外部命令##标题##
yhxst69z5#
但它实际上是对缺少try{}catch(){}块的警告,您可以通过编写以下语句来查看受影响的代码
它将显示未选中的所有必须通过用户定义或系统定义异常代码捕获的异常
u5rb5r596#
这些不是错误。只是警告。这些不会影响你的程序。但是当你将来使用过时的util类Date时,它可能会影响你的程序。
最好使用
java.util.Calendar
而不是java.util.Date
,它提供与Date相同的功能,还提供一些额外的功能