19

これらのエラー ノートを修正する方法を知る必要があります。

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

5 に答える 5

12

これはエラーではありません。それは警告メッセージです。

プログラムは、作成したとおりに実行されます。

コンパイラがこの警告を表示する理由は、非推奨の関数呼び出しを使用したためです。

「-Xlint を使用して再コンパイルする」とは、コンパイラが次のようにプログラムを再コンパイルする必要があることを通知することを意味します。

javac -Xlint abc.java 

そうする場合、コンパイラはどのメソッドが非推奨であるかを通知するので、それらの呼び出しを削除できます。(一部のメソッドが非推奨になっている場合は、通常、より優れた実装が利用可能であり、非推奨のメソッドの代わりにそれを使用する必要があることを意味します。)

于 2012-09-24T14:11:32.600 に答える
8

警告です。非推奨の関数呼び出しまたはオブジェクトを使用しています。次のように再コンパイルして、発生している場所を見つけることができます。

javac -Xlint:deprecation Summer.java

一般に、非推奨のライブラリを使用することはお勧めできません。これらは次のリリースでなくなる可能性があります。

于 2012-09-24T02:49:43.450 に答える
2

メッセージが示すように、次のよう-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
于 2012-09-24T02:49:20.127 に答える
-2

それらはエラーではありません。ただの警告。それらはあなたのプログラムには影響しません。ただし、今後非推奨のユーティリティ クラス Date を使用しているため、プログラムに影響を与える可能性があります。

これはDate と同じ機能といくつかの追加機能を提供するjava.util.Calendar 代わりに使用することをお勧めしますjava.util.Date

于 2012-09-24T10:47:48.453 に答える