2017-01-30 19 views
22

Javadocツールはアクセシビリティ修飾子に基づいてドキュメントを生成します。デフォルトでは、すべてpublicおよびprotectedのクラス、フィールドおよびメソッドがドキュメント化されています。これは、次のoptionsで変更することができます:JavadocはJava 9のモジュールの可視性をどのように扱いますか?

-public
のみpublicのクラスとメンバを表示します。

-protected
保護されている公開クラスとメンバのみを表示します。これがデフォルトです。

-package
パッケージクラス、保護クラス、およびパブリッククラスとメンバのみを表示します。

-private
すべてのクラスとメンバを表示します。

Java 9にはモジュールの概念が導入されており、プロジェクトJigsawはそれを既存のJDKに適用します。 public修飾子は今(exports経由)モジュールの可視性に応じて、アクセスの異なるレベルを持っているか(モジュールに関する交渉のシリーズの第3回)のMark Reinhold氏によるtalkは示しています。誰にでも

  • 公衆今ないので

のみモジュール内のパブリック

  • 公共だけ特定のモジュールへ
  • すべてのパブリックメンバーがアクセス可能な場合、同じJavadoc生成スキームを続行することはあまり意味がありません。 「十分な」レベルで公開されているメンバーのみが文書化されるべきです。

    Javadocはモジュールを認識していますか?余分な露光層を扱うためのコマンドオプションは上記のコマンドオプションに加えてありますか?特定のモジュールのみに公開されているパブリックメンバーの場合、Javadocはこれらを次のようにリストアップしますか?

    public <module1, module2> static void getDefaultThing() 
    

  • +4

    興味深い質問は、特にjavadocの目的として、両方とも内部的に(例えば、ライブラリ/モジュールの開発者)、公開されているかもしれません(例えば、ライブラリ/モジュールのユーザー)。 –

    +0

    @MarkRotteveelはい。ライブラリのコンパイル時にユーザのモジュールが分かっていない可能性があるので、ライブラリ/モジュールのユーザのみを対象としていたとすれば、*「誰にとってもpublic」だけが表示されます。しかし、それが '保護されている 'ことを意味するかどうかは分かりません。 – user1803551

    +1

    javadocは* some *モジュールのドキュメントを何とか備えているようです(私はそれらを試していません)。 'javadoc --help | grep module'はいくつかのオプションがあることを示しています。可能なこれらのコマンドについての私の理解から、何らかの形で2つのタイプのドキュメントがあります - 通常のものとモジュールです。私は完全に間違っているかもしれません...本当に良い質問です。 – Eugene

    答えて

    13

    javadocには、モジュール、パッケージ、タイプ、メンバーレベルでどの項目が文書化されるかを選択できる新しいオプションがあります。 EAバージョンのJDK 9を使用して、新しい--module--show-*オプション、および--expand-requiresオプションを探します。そのコマンドラインヘルプがまだ更新する必要が

    既存のオプション-public-protected-package-privateオプションは、新しい--show-*オプションの面で再定義されています。

    ハンディダンディ変換テーブルは次のようになります。一般的には

    -public 
         --show-module-contents api --show-packages exported --show-types public --show-members public 
    
    -protected (the long-standing default) 
         --show-module-contents api --show-packages exported --show-types protected --show-members protected 
    
    -package 
         --show-module-contents all --show-packages all --show-types package --show-members package 
    
    -private 
         --show-module-contents all --show-packages all --show-types private --show-members private 
    

    、APIの利用者のためのドキュメントを生成するために、デフォルトを使用し続け、そしておそらく-packageまたは-privateはの開発者のためのドキュメントを生成するために使用しますAPI。細かい制御をさらに行うには、基になる--show-*オプションを使用します。

    +0

    出力はどうなりますか? Javadocにはさまざまなレベルの 'public'が書かれていますか? – user1803551

    関連する問題