Eclipseでゲッターとセッターを自動的に生成する方法はありますか?


256

新しいAndroidプロジェクト(Java)に取り組んでおり、多数の変数を持つオブジェクトを作成しました。すべてのゲッターとセッターを追加する予定なので、疑問に思っていEclipseました。特定のクラスでゲッターとセッターを自動的に生成するためのショートカットはありますか?


1
私にはストーカーのように聞こえます...私はIDEなしですべてのJavaプログラミングを行っていたので、Eclipseを使用することはまだ比較的新しいです。
Phil

3
@krio-全世界がEclipse for Java開発を使用していません。ほとんどの作業はIntelliJで行い、Eclipseで作業を開始すると、このような多くの質問をするようになりました。
vcsjones 2011

1
@Phil、vcsjones -非常に本当の私の謝罪はなく、このアウトをチェック- google.com.au/... -私は推測stackoverflowのは言う研究が重要である
TeaCupApp

2
最速の方法:ctrl + 3 ggas
dellasavia

1
@Konstantinは、同じクラスでそれらを使用しないように言っているだけなのでthis.getCount()、参照するだけの場合はを呼び出さないでくださいthis.mCount。これはよりコストのかかる操作になる可能性がありますが、ゲッターとセッターを介して他のオブジェクトの変数へのアクセスを提供するためのよりクリーンなアプローチです。
Phil

回答:


357

目的のクラスのソースコードウィンドウでコンテキストメニュー(つまり、右クリック)を表示します。次にSourceサブメニューを選択します。そのメニューから選択Generate Getters and Setters...すると、ウィザードウィンドウが表示されます。

Source -> Generate Getters and Setters...

ゲッターとセッターを作成する変数を選択して、をクリックしますOK


「Generate Element Comment」のみがあり、ゲッターとセッターはありません。PDTプラグインがインストールされたEclipse 4.4.0を使用しています。それまでは、これを使用できます-mikeangstadt.name/projects/getter-setter-gen
Xdg 2015

Eclipse Mars.2リリース(4.5.2)で問題なく動作します。ありがとう。
this.user3272243

約100万年の退屈さを救ってくれてありがとう!
ジェイエドワーズ

11
キーボードショートカットSHIFT+ ALT+ + Sでこのサブメニューにアクセスし、を押して[ゲッターとセッターの生成]オプションを開くこともできますR
Rosa

ここで私の答えがどのように人気を博したかはおかしいですが、最近では、他の人が指摘しているように、私はLombokを使用するだけです。
Hagai Cibulski、2018

70

Eclipse Junoでは、デフォルトでALT + SHIFT + S、Rによりゲッター/セッターダイアログボックスが開きます。4つのキーすべてを押す必要があることに注意してください。


5
SHIFT部分を省略して、ALT + S、Rを実行することもできます。
Jason Wheeler

2
あなたはSHIFTEclipse Keplerで除外することはできません
yellavon

あなたは出て残すことができますSHIFTEclipseの酸素に。
Jake Reece、

あなたは除外cannnot SHIFTEclipseの2018から12に。
ネフ


41

他のすべての回答はIDEレベルにのみ焦点を当てています。これらはゲッターとセッターを生成する最も効果的でエレガントな方法ではありません。 数十の属性がある場合、関連するゲッターメソッドとセッターメソッドにより、クラスコードが非常に冗長になります。

ゲッターとセッターを自動的に生成するために私が使用した最良の方法は、Javaプロジェクトでプロジェクトのロンボクアノテーションを使用することです Javaコードをコンパイルするときにゲッターとセッターメソッドを生成します。

クラスの属性/変数の命名と定義に集中するだけで、あとはロンボクが行います。これはコードの保守が簡単です。

たとえば、age変数のゲッターメソッドとセッターメソッドを追加する場合は、2つのロンボクアノテーションを追加するだけです。

@Getter @Setter 
public int age = 10;

これはそのようなコードと同じです:

private int age = 10;
public int getAge() {
    return age;
}
public void setAge(int age) {
    this.age = age;
}

ここでロンボクの詳細を見つけることができます:プロジェクトロンボク


1
それでおしまい!どうもありがとうございました!実際には、lombokが生成または記述しなければならないボイラープレートJavaコードをすべて見ないようにするための唯一の真のソリューションであるため、あなたの答えが一番です。ありがとう!
Stefan Endrullis 2016年

2
Project Lombok(または少なくともアイデア)はJava 11の一部である必要があります。私は
Pojo

31

ゲッターとセッターを生成する方法-

1)+ +を押し 、次に 2)右クリック ->ソース->ゲッターとセッターの生成 3)ソースメニューに移動 ->ゲッターとセッターの生成 4)Windowsメニューに移動 ->設定->一般->キー(書き込み生成)テキストフィールドのゲッターとセッター) 5)フィールドのエラー電球クリックします ->ゲッターとセッターを作成します...AltShiftSR




6)+押し てテキストフィールドにゲッターとセッターを書き込んでから、[ゲッターとセッターを生成]オプションを選択しますCtrl3

もし Mac OSで Alt + cmd + Sを押すは、ゲッターとセッターを選択します


2
私は1がこのように少し簡単だと思います:1)Alt + Shift + Sを押してからR
Paco Abato

1
Ctrl-3を押した直後に「getter」と入力すると、リストに表示されません。これは、すべてのコマンド、ビューなどで機能するため、特定のショートカットより覚えやすいです。
Bananeweizen 2015年

@ Bananeweizen-ありがとう
Deepak Gupta

11

右クリック->ゲッターとセッターの生成はうまく機能しますが、ウィンドウのEclipseにキーボードショートカットを作成する場合は、次の手順に従います。

  1. [ウィンドウ]> [設定]に移動します
  2. 一般>キーに移動します
  3. 「クイックアシスト-フィールドのゲッター/セッターを作成」のリスト
  4. 下の[Binding]テキストフィールドで、目的のキーを押したままにします(私の場合、ALT + SHIFT + Gを使用します)
  5. ApplyとOKを押します
  6. Javaエディターで、getter / setterメソッドを作成するフィールドを選択し、手順4で設定したショートカットを押します。このウィンドウで[OK]をクリックして、メソッドを作成します。

お役に立てれば!


9

承知しました。

ダイアログを開くには、選択したフィールドまたはタイプのソースメニューまたはコンテキストメニューから、あるいはタイプのテキスト選択から、ゲッターおよびセッターの生成を使用します。「ゲッターとセッターの生成」ダイアログには、選択したタイプのすべてのフィールドのゲッターとセッターが表示されます。メソッドは、タイプのフィールドによってグループ化されます。

詳細については、ヘルプドキュメントをご覧ください。


8

はい。コードを右クリックすると、メニューポップアップが表示されます。「ソース」、「ゲッターとセッターの生成」があり、その横にショートカットが表示されます。これは私のシステムではAlt + Shift + SとRです。

同様に、メインメニューの他のサブメニューに移動できます。適切なショートカットを入力すると、メインコンテキストメニューの代わりにサブメニューに直接移動し、メニューから選択するか、別の文字を入力してリストから選択できます。



7

私は最初にプライベートフィールドを作成することを好みます

private String field;

Eclipseは、新しい変数の上にカーソルを置いてCtrl + 1を押すことで、変数を自動的に強調表示します。これにより、ゲッターとセッターを作成するためのメニューが表示されます。

私がCtrl + 1を押すのは、次に何をしたいのかについて少しインテリジェントだからです。


5

Alt + Shift + S + R ...を押してから、ゲッターまたはセッター、あるいはその両方を生成する必要があるすべてのフィールドのみを選択します


5
  • すべての変数の場合 ALT + SHIFT + S次にRを選択し、すべてを選択する場合ALT + Aを押す

  • 変数の単一変数ポイントカーソルの場合、CTRL + 1を押して、候補から2番目のオプションに移動します

スクリーンショット


ありがとう、これは私が探していたものです。
Shams Nahid



3

** Eclipse Ideの場合

セッターとゲッターの両方を生成する場合-> alt + shift + s + r、Alt Aの順にクリックし、[ok]をクリックします。

ゲッターのみを生成するには-> alt + shift + s + rを押してからgを押してからokボタンをクリックします。

セッターのみを生成する場合-> alt + shift + s + r、lを押して[ok]ボタンをクリックします。**



2

1)Windows-> Preferences-> General-> Keysに移動します

2)commandゲッターとセッターを生成する」選択します

3)でBinding、使用したいショートカットAlt + Shift + Gなど)を押します。)を

4)[ 適用]をクリックしてください


1
  1. Eclipseでクラスファイルを開く
  2. クラス名をダブルクリックするか、強調表示します
  3. 次に、ソース->コードの挿入に移動します
  4. Getter and Setterをクリックします

生成するゲッター/セッターメソッドのフィールドを選択するポップアップを開きます。フィールドを選択し、「生成」ボタンをクリックします。 ここに画像の説明を入力してくださいここに画像の説明を入力してください


1

PojoにはProject Lombok以上のKotlinを使用してください。

(また、履歴書にKotlinを追加するには;))

この :

public class BaseVO {
    protected Long id;

    @Override
    public boolean equals(Object obj) {
        if (obj == null || id == null)
            return false;

        if (obj instanceof BaseVO)
            return ((BaseVO) obj).getId().equals(id);

        return false; 
    }

    @Override
    public int hashCode() {
        return id == null ? null : id.hashCode();
    }
    // getter setter here
}

public class Subclass extends BaseVO {
    protected String name;
    protected String category;
    // getter setter here
}

これになるでしょう:

open class BaseVO(var id: Long? = null) {

    override fun hashCode(): Int {
        if (id != null)
            return id.hashCode()

        return super.hashCode()
    }

    override fun equals(other: Any?): Boolean {
        if (id == null || other == null || other !is BaseVO)
            return false

        return id.hashCode() == other.id?.hashCode()
    }
}

@Suppress("unused")
class Subclass(
        var name: String? = null,
        var category: String? = null
) : BaseVO()

または、Kotlinの「データ」クラスを使用します。あなたはさらに少ないコード行を書くことになります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.