web-dev-qa-db-ja.com

Javaコメントでコードの論理セクションをマークする方法は?

Javaクラスは通常、論理的な「ブロック」に分割されます。これらのセクションをマークする規則はありますか?理想的には、主要なIDEでサポートされます。

私は個人的にこの方法を使用します:

//// Section name here ////

ただし、一部のエディターにはこれに問題があるようです。

例として、Objective-Cコードでは、このメソッドを使用できます。

#pragma mark -
#pragma mark Section name here

これにより、XCodeのメニューは次のようになります。

alt text

84
Frederik

私は個人的に次のように80文字の行区切り文字を使用します。

public class Client {

    //================================================================================
    // Properties
    //================================================================================

    private String name;
    private boolean checked;

    //================================================================================
    // Constructors
    //================================================================================

    public Client() {
    }

    public Client(String name, boolean checked) {
        this.name = name;
        this.checked = checked;
    }

    //================================================================================
    // Accessors
    //================================================================================

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public boolean isChecked() {
        return checked;
    }

    public void setChecked(boolean checked) {
        this.checked = checked;
    }

}

もちろん、これはこのような小さなPOJOには少しやり過ぎのように思えるかもしれませんが、大きなソースファイルを参照し、興味のあるメソッドをすばやく見つける必要があるいくつかの巨大なプロジェクトでは非常に役立つことがわかりました。ソースコード構造。

Eclipseで、これらのバーを生成するカスタムテンプレートのセット(Java-> Editor-> EclipseのPreferencesダイアログのTemplates)を作成しました。 -sepa(アクセサのSEParator)-sepp(プロパティのSEParator)-sepc(コンストラクタのSEParator)-など.

標準の「新しいクラス」テンプレートも変更しました(Eclipse Preferences画面のJava-> Code Style-> Code Templates)

また、 Coffee-bytes と呼ばれる古いEclipseプラグインがあります。これは、Eclipseがコードの一部を折りたたむ方法を強化しました。それでも機能するかどうかはわかりませんが、// [SECTION]などの特別なコメントを追加することで、任意の折りたたみ可能ゾーンを定義できることを思い出しました。 Eclipseの最近のリビジョンでも機能する可能性があるため、ご覧ください。

60

Intellij/Androidスタジオには、すばらしいソリューションがあります。
皮切りに:
//region Description
で終わる:
//endregion

そのショートカットは、次のメニューで開くことができます Command+Alt+T (Mac)または Ctrl+Alt+T (Windows)

必要に応じて、視覚的な分離のために独自の行を追加することもできます。領域は、他の機能と同様に+/-ボタンを使用して自由に縮小および拡大できます。リージョン間を移動することもできます Command+Alt+Period (Ctrl+Alt+Period

ソース

例:

//region Parceler Implementation
//---------------------------------------------------------------------------------------
@Override
public int describeContents() {
    return 0;
}

@Override
public void writeToParcel(Parcel dest, int flags) {
    dest.writeParcelable(this.die, 0);
    dest.writeParcelable(this.dieSprite, 0);
}

private DieVm(Parcel in) {
    this.die = in.readParcelable(Die.class.getClassLoader());
    this.dieSprite = in.readParcelable(Sprite.class.getClassLoader());
}

public static final Parcelable.Creator<DieVm> CREATOR = new Parcelable.Creator<DieVm>() {
    public DieVm createFromParcel(Parcel source) {
        return new DieVm(source);
    }

    public DieVm[] newArray(int size) {
        return new DieVm[size];
    }
};
//---------------------------------------------------------------------------------------
//endregion
126
Andrey Petrov

Eclipseは @ category javadocアノテーション (「Category support」とマークされたセクションまでスクロールします)を定義します。これにより、アウトラインビューのカテゴリによるフィルタリングが可能になります。まさにあなたが望むものではありません。あなたのスクリーンショットのようなビューを提供するEclipseプラグインを誰も書いていないことに驚いています。

14
basszero

私はXcodeを使用していたときにもそれが好きだった。 Eclipseの場合、ctrl + o(クイックアウトライン)を使用してJavaクラスをナビゲートします。

6
kukudas

作業を支援するためにコードで不要なコメント/マーカーを使用することは、良い習慣ではありません。私はxcodeとJava開発についてはほとんど考えていませんが、Eclipseのような特別なマーカーなしでメンバーを見つけることをサポートするすべての主要なIDEは、ctrl+O、Intellij(私はMacでより多く使用することを好み、コミュニティ版も持っていました)には同じアウトラインの概念があり、(ctrl + f12)を使用してすばやくアクセスできます。したがって、ここでの私のポイントは、すべての(または少なくとも良い/健全な)IDEが自動的に行うことができるので、コードで不要なマークアップを使用しないことです。

6
Teja Kantamneni

私の知る限り、クラスメンバーをグループ化するためのサポートされている仕様などはありません。任意のコメント規則を使用できますが、どのツールでもサポートされない可能性があります。

継承または集約を介して、関連するメンバーを個別のクラスにグループ化することをお勧めします。これは、良いOOPスタイル

4
artemb

提供されたAndreyの回答に加えて、// region // endregionを使用するために、主要なコードセクションに[BigAscii letters] [1]を挿入します。速くスクロールするとき、それは本当に際立っています。このアプローチの欠点の1つは、検索できないため、以下のように「バナー」のすぐ下に検索用語を追加する必要があることです。

ブロッククォート

//    _      _____          _____                  _   _
//   | |    |  __ \   /\   |  __ \      /\        | | | |
//   | |    | |  | | /  \  | |__) |    /  \  _   _| |_| |__
//   | |    | |  | |/ /\ \ |  ___/    / /\ \| | | | __| '_ \
//   | |____| |__| / ____ \| |       / ____ \ |_| | |_| | | |
//   |______|_____/_/    \_\_|      /_/    \_\__,_|\__|_| |_|
//
//   Search here with: LDAP Auth

[1]: http://patorjk.com/software/taag/#p=display&c=c%2B%2B&f=Big&t=LDAP 認証

3
Manabu Tokunaga

javadoc ;を使用しますまたは、以下を単純な「セパレータ」として使用します(1行または3行)。

/** RecyclerOnItemClickListener */

/** 
 * RecyclerOnItemClickListener
 */

そのため、IDEでは、目立たないコメント付きグレー以外の異なる色で表示されます。

2
superarts.org

最新のIDEを使用すると、さまざまな方法でコードを表示し、さらに再編成することができます。Eclipseでは、カーソルがあるコードの定義を別のパネルで表示することもできます。

コードの自動再編成は、このようなマークアップを破壊します。

グループ化する場合は、同じクラスに属するものと、異なるクラスに属さないものを配置することを検討してください。

メソッドをクラスタ化できる場合は、セクションでキャプチャするそのコンセプト専用の別のクラスを実行します。ファイルの作成は無料です。

0
Lay González