2012-09-24 4 views
6

ため廃止:あなたはコンパイルする必要が再コンパイル:私はこれらのエラーノートを修正する方法を知っておく必要があります詳細

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

答えて

1

メッセージが言うように、:

Note: Summer.java uses or overrides a deprecated API. 
Note: Recompile with -Xlint:deprecation for details. 
ここ

私のコードですjavacコマンドに-Xlintコマンドラインスイッチを使用して、それを次のように

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 
+0

例外コードを定義し表示しますjGrasp開発環境ですか? – Vikdor

+0

jGraspで新しいJavaを開き、そこに自分のコードの作業を開始します。それから、コンパイル・ファイル・ボタンを押してエラーをチェックします。 –

+0

jGraspで 'deprecation'警告をどのように有効にするかわかりません。このためには、jGraspのマニュアルを調べる必要があります。 Eclipseの場合は、Windows - > Preferences - > Java - > Compiler - > Errors/Warnings - > Deprecated and restricted APIに進み、重大度をwarning/errorに設定します。 – Vikdor

5

それは警告です。廃止予定の関数呼び出しまたはオブジェクトを使用しています。そのように再コンパイルすると、発生している場所を確認できます。

javac -Xlint:deprecation Summer.java 

一般的に、廃止予定のライブラリを使用することは悪い考えです。彼らは次のリリースで消えるかもしれません。

+0

警告メッセージが表示されますが、プログラムを正しく実行してください。ありがとうございました –

-1

これらはエラーではありません。ただの警告。それらはあなたのプログラムに影響しません。しかし、今後廃止予定のutilクラスDateを使用しているので、プログラムに影響する可能性があります。

また

6

これは、その警告メッセージエラーではありませんjava.util.Calendar代わりのjava.util.Dateこれは日付とsomeextraの機能と同じ機能を提供を使用することをお勧めします。

あなたのプログラムは書いたとおりに実行されます。

コンパイラがこの警告を出す理由は、廃止予定の関数呼び出しを使用したためです。あなたがそうするならば-Xlintで再コンパイルすることにより

、コンパイラは

javac -Xlint abc.java 

として、あなたのプログラムを再コンパイルする必要があることを通知することを意味し、コンパイラは、あなたがそれらを削除することができるように廃止された方法を教えてくれます。

コンパイラはもっと良いものは、あなたが「

PSを使用しようとしている何のために提供されていることを知らせる警告をポップアップ表示させ、「いくつかのメソッドは廃止された場合、基本的には、より高度な実装が提供され、」:それは常に賢明です。

が、それはこのエラーの:-)

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

に役立ちます願っています。しかし、あなたが見るために使用することができます のtry {}キャッチ(){}ブロックを逃すためにその実際に警告非推奨メソッドを使用しません影響を受けるコードb次の文

javac -Xlint:unchecked filename.java 

を書いyはそれが未チェックのすべての定義のユーザーによってキャッチしなければならない例外またはシステムがどのようにコマンドラインからまたはから、あなたのコードをコンパイルしている