Intellij Getter/Setter形式
-
21-09-2019 - |
質問
このような1つのラインでintellijにゲッター/セッターを生成するにはどうすればよいですか:
public String getAbc() { return abc; }
それ以外の
public String getAbc() {
return abc;
}
??
解決
他のヒント
Intellij Idea 14.1.0を使用していますが、この動作をカスタマイズできます。
「生成...」オプションを使用するか、使用する alt+入れる ショートカット、「ゲッターとセッター」を選択します。
開く「[フィールドの選択]ウィンドウに、上部に「ゲッターテンプレート」オプションがあります。ドロップダウンの横にある「...」ボタンを使用して、テンプレートを編集します。
「Intellijデフォルト」を選択し、[コピー]ボタンをクリックして、編集できる新しい名前の「AlwayStartWithget」を作成します。
次のセクションを削除するだけです。
#if ($field.boolean)
#if ($StringUtil.startsWithIgnoreCase($name, 'is'))
#set($name = $StringUtil.decapitalize($name))
#else
is##
#end
#else
get##
#end
シンプルに置き換えます
get##
あなたは残されるべきです:
public ##
#if($field.modifierStatic)
static ##
#end
$field.type ##
#set($name = $StringUtil.capitalizeWithJavaBeanConvention($StringUtil.sanitizeJavaIdentifier($helper.getPropertyName($field, $project))))
get##
${name}() {
return $field.name;
}
これで、ゲッターテンプレートのドロップダウンで選択して、コードを生成するときにカスタムテンプレートを使用できます。
あなたが使用しているアイデアのバージョンについては言及していなかったので、最近の8つまたは9を想定しています。
「アライメントとブレース」の下で、コードスタイルの設定を確認してください。そこには「1行の単純な方法」オプションを見つける必要があります。
Idea 2016のために。
ゲッターテンプレート
最後の3行を単一の行にマージします。
${name}() { return $field.name; }
セッターテンプレート
最も長い行の終わりに二重ハッシュ(スペースなし)を追加します。
[...] ($field.type, $paramName) {##
最後の2行を単一の行にマージします。
$field.name = $paramName; }
注:@mindasがコメントしたように、おそらくバージョンにならないビジュアルオート折りたたみが必要です。
おそらく視覚的なスペースを節約するために、なぜこれをやりたいのかわかりません。もしそうなら、Intellijの機能を使用して、些細なゲッター/セッターを折り、それがどのようにかかるかを忘れてください。折りたたみ機能はにあります
設定 - > IDE設定 - >エディター - >コードフォールディング - >コードフォールディングの概要を表示 - >シンプルなプロパティアクセサーズ
Alex GとLaffusteは私を助けた回答を提供しましたが、これらの指示に従った後でも、Intellijはそれでもコードを自動的にフォーマットすることができます。これが起こらないようにするには、設定 - > editor-> codeスタイル - > java(または他の言語)に移動します。 「ラッピングとブレース」というタイトルのタブをクリックします。タイトル「Keep ay Reforatting」の下で、「1行の単純な方法」の横にあるチェックボックスをクリックします。
さらに簡潔にするために、ゲッターメソッドとセッターメソッド間の空白線を排除できます。これを行うには、「blank Lines」というタイトルのタブをクリックします。 「最小ブランクライン」というタイトルのセクションで、「Around Method」の横にあるテキストボックスを見つけます。テキストボックスに0を入力します。