私は2つのクラスを持っています。最初のメソッドには廃止予定のメソッドが含まれています。 2番目のクラスは、最初のクラスをインスタンス化し、廃止予定のメソッドを使用します。javadocで推奨されていないメソッド
質問:非推奨メソッドはjavadoc Test.java
を実行した後、生成されたJavaのドキュメントに記載されていない理由を
コンパイラは警告を表示していますが?ここで
はコードです:
私は2つのクラスを持っています。最初のメソッドには廃止予定のメソッドが含まれています。 2番目のクラスは、最初のクラスをインスタンス化し、廃止予定のメソッドを使用します。javadocで推奨されていないメソッド
質問:非推奨メソッドはjavadoc Test.java
を実行した後、生成されたJavaのドキュメントに記載されていない理由を
コンパイラは警告を表示していますが?ここで
はコードです:
の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クラスにあります。
ありがとうございましたが、以前はクラス自体の中でdeprecated要素を使用しないように頼まれました:http://stackoverflow.com/questions/40968273/field-declared-deprecated-but-no-compiler-warning –
いいえ、あなたは言われましたあなたが警告されないようにしてください。 – xenteros
あなたの答えを慎重に読んで、上記の@AxelHのコメントを使用したので、今すぐ動作します。非常にありがとうございます –
コメントで指摘されたとおり:クラス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
-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ファイル
最後のコマンドをありがとう –
あなたのクラスはパブリックではありません - 'Tester'は、現時点ではすべて*で*文書化されることはありません。それは非推奨とは関係ありません。 –
@JonSkeet上記のプログラムのドキュメンテーションを、私が言及したコマンドを使って生成しましたが、廃止されたメソッドがリストされていません。 –
'Test'を自分のファイルに移動し、パブリッククラスとして設定します。もう一度javadocを実行してください。 – AxelH