2013-06-07 11 views
23

これを検索しようとしましたが、実際に検索する用語が私を逃しています。小さなコードスニペットの後に質問があります。 私はのIntelliJのすべてのセッターメソッドを拡張できるようにしたいと思い、この人物オブジェクトを使用して別のオブジェクトでIntellijコードローカル変数オブジェクトのすべてのセッター/ゲッターメソッドの補完

Public class Person { 

    String firstName; 
    String lastName; 

    public void setFirstName(String firstName) { 
     this.firstName = firstName; 
    } 

    public String getFirstName() { 
     return firstName; 
    } 
    ... 
} 

public class PersonAssembler { 
    public static Person assemblePerson(SomeOtherObject someOtherObject) { 

    Person person = new Person; 

    //intellj would provide this below. 
    person.setFirstName(); 
    person.setLastName(); 
    //end of what intellj provides. 

    return person; 
} 

これは可能ですか?私はキーボードのショートカットなどを見てきました。私はしばらくintellijを使用していましたので、誰かがこれについていくつかの洞察を持っていたかどうかは不思議でした。

私は、列の編集モード、コードの補完、おそらくシフト+下向きの矢印を押して複数の補完を選択したいと思っていましたが、運はありません。それは驚くべきことではない。私はGUIにそれを書かなくてはならない。

編集:私はいくつかの説明を追加し、正直なところこの質問を忘れてしまった。答えは注意深く読めば実際の問題とは何の関係もありません。私はコンテキストメニューの生成については言及していません。

+0

解決策を見つけましたか?私は同じ質問を...私はテストで40人のセッターのコードを書いたくない..... – Paundl

答えて

8

を選択することができます古い質問ですが、誰かを助けるかもしれません。フォローする

また、それは "シングルクリック" アクションではないのですが...

ステップ:

  • ゴークラスへ
  • オープン構造ビュー(左パネル)ファイル
  • すべてのセッターを選択してコピーする(必要に応じてアルファベット順に並べ替え)
  • 目的地のクラス/メソッドに戻る
  • 貼り付けコピー
  • 各クラスの冒頭にperson.を、最後に()を含めるように(列モードで)編集します。
+1

です。これは実際には非常に洞察力があり、とてもうまく動作します。ありがとう! –

12

プロジェクトでは、入力画面の任意の場所を右クリックし、[Generate ...]をクリックしてから[Getter and Setter]をクリックします。次に、Ctrlキーを押しながらゲッターとセッターを作成するフィールドをクリックし、「OK」をクリックします。

+9

彼はゲッター/セッターを生成したくないようだ - 彼はクライアントクラスでセッター呼び出しを生成したい代わりに。 –

+0

これを自動化する方法はありますか?適切なキーマップショートカットを見つけることができません。 – Blauhirn

+0

新しい構造体のようなクラスを作成するときの良い解決法 – Drakes

5

私はのIntelliJでこれを行う方法がわからないのですが、私はJavaで物事のこれらの種類はそんなにスムーズになりますフレームワークにあなたをリンクします:プロジェクトロンボク

は、例えば、あなたのコードを取る、それが見えます

intellijにpluginがあり、それを修正しても迷惑な警告は表示されません。

http://projectlombok.org/

3

あなたのカーソルが、新しく作成したクラスの中で、あなたは、ALT +挿入を押すことができます - ダイアログが表示されます、あなたは、これはゲッターとセッター

enter image description here

+1

'Mac'では' Ctrl' + 'return' – zhuguowei

+0

キーボードショートカットをカスタム設定することがIntellijでは可能ですが、デフォルトは – serup

6

ゲッターセッターを作成するためのショートカットは、IntellijのALT+Insertです。ここ

+1

ありがとうございます。私を助けました。 – parsecer

2

この

foo.allSet

ようgenSets

Foo foo = new Foo();

コードは、このプラグインが役立つかもしれ

foo.setName(); 
foo.setAge(); 
foo.setBar(); 
foo.setTest(); 
foo.setLike(); 
+0

これにはコンパイル済みのプラグインがありますか? – aristotll

+0

@aristotll Githubページで[releases](https://github.com/yoke233/genSets/releases)に行くと、コンパイル済みのプラグインをダウンロードできます。 – muenchdo

1

を生成します私のプラグインですGenerateAllSetter

CTRL + ENTERを使用したい場合は、セッターコールが生成されます。

関連する問題