2016-12-05 4 views
3

私は2つのクラスを持っています。最初のメソッドには廃止予定のメソッドが含まれています。 2番目のクラスは、最初のクラスをインスタンス化し、廃止予定のメソッドを使用します。javadocで推奨されていないメソッド

質問:非推奨メソッドはjavadoc Test.javaを実行した後、生成されたJavaのドキュメントに記載されていない理由を

コンパイラは警告を表示していますが?ここで

はコードです:

enter image description here

+5

あなたのクラスはパブリックではありません - 'Tester'は、現時点ではすべて*で*文書化されることはありません。それは非推奨とは関係ありません。 –

+0

@JonSkeet上記のプログラムのドキュメンテーションを、私が言及したコマンドを使って生成しましたが、廃止されたメソッドがリストされていません。 –

+3

'Test'を自分のファイルに移動し、パブリッククラスとして設定します。もう一度javadocを実行してください。 – AxelH

答えて

1

のJavadocドキュメントのみpublicクラス:ここ

import java.lang.annotation.*; 
class Tester{ 
    private int a = 1; 
    /** 
    * @deprecated 
    * This is deprecated because I do not like it 
    */ 
    @Deprecated 
    public void afficher(){ 
     System.out.println("a is: " + a); 
    } 
} 
public class Test{ 
    public static void main(String[] args){ 
     Tester T = new Tester(); 
     T.afficher(); 
    } 
} 

は推奨されない方法が全く記載されていません生成されたJavaのドキュメントファイルのスクリーンショットです。廃止予定のメソッドがあるクラスは公開されていないため、文書化されません。

javadoc Test.java 

は、テスト用のドキュメントを生成します。推奨されないメソッドはTesterクラスにあります。

+0

ありがとうございましたが、以前はクラス自体の中でdeprecated要素を使用しないように頼まれました:http://stackoverflow.com/questions/40968273/field-declared-deprecated-but-no-compiler-warning –

+0

いいえ、あなたは言われましたあなたが警告されないようにしてください。 – xenteros

+0

あなたの答えを慎重に読んで、上記の@AxelHのコメントを使用したので、今すぐ動作します。非常にありがとうございます –

3

コメントで指摘されたとおり:クラスTesterは、javadocとは関連がないため、文書化されません。 デフォルトでは、文書化のためにpublicまたはprotectedが収集されます(http://docs.oracle.com/javase/8/docs/technotes/tools/windows/javadoc.html)。

いずれかの可視性を変更する(例えば、それprotected又はpublicする)またはフラグ-package又は-privateとJavadocを生成します。しかし、おそらく必要ないドキュメンテーションをたくさん生成するかもしれないことに注意してください。

javadoc -package Test.java 
1
-public: Shows only public classes and members. 
-protected: Shows only protected and public classes and members. This is the default. 
-package: Shows only package, protected, and public classes and members. 
-private: Shows all classes and members. 

だからのjavadocでそれを呼び出す-package -d * .javaファイル

+0

最後のコマンドをありがとう –

関連する問題