使用-Xlint重新编译:弃用以获取详细信息

时间:2012-09-24 02:43:34

标签: java

我需要知道如何解决这些错误提示:

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

5 个答案:

答案 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相同的功能,并且还有一些功能