java 使用-Xlint:deprecation重新编译以了解详细信息

eit6fx6z  于 2023-02-28  发布在  Java
关注(0)|答案(6)|浏览(389)

我需要知道如何修复这些错误注解:

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" );
        }
    }
}
yb3bgrhw

yb3bgrhw1#

这不是错误;这是一个警告信息。
你的程序会像你写的那样运行。
编译器发出此警告的原因是因为您使用了一个不推荐使用的函数调用。
通过“使用-Xlint重新编译”,编译器意味着通知您需要像这样重新编译您的程序:

javac -Xlint abc.java

如果这样做,编译器会告诉你哪些方法被弃用了,这样你就可以删除对它们的调用(如果某个方法被弃用了,它 * 通常 * 意味着有更好的实现可用,你应该使用它来代替被弃用的方法)。

ubby3x7f

ubby3x7f2#

这是一个警告。你正在使用一个过时的函数调用或对象。你可以像这样重新编译以找出它发生的位置:

javac -Xlint:deprecation Summer.java

一般来说,使用过时的库不是一个好主意,它们可能在下个版本中消失。

huus2vyu

huus2vyu3#

如消息所示,您需要使用-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
sqserrrh

sqserrrh4#

{标题....“范围”:[“管道:20”:“读取”,“作业:103”:“write”]}“TARGET”未被识别为内部或外部命令##标题##

yhxst69z

yhxst69z5#

Note: filename.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

但它实际上是对缺少try{}catch(){}块的警告,您可以通过编写以下语句来查看受影响的代码

javac -Xlint:unchecked filename.java

它将显示未选中的所有必须通过用户定义或系统定义异常代码捕获的异常

u5rb5r59

u5rb5r596#

这些不是错误。只是警告。这些不会影响你的程序。但是当你将来使用过时的util类Date时,它可能会影响你的程序。
最好使用java.util.Calendar而不是java.util.Date,它提供与Date相同的功能,还提供一些额外的功能

相关问题