33

次のように、 IntelliJに getter/setter アクセサー メソッドを 1 行で生成させるにはどうすればよいですか。

public String getAbc() { return abc; }

…次のような複数行の代わりに:

public String getAbc() {
   return abc;
}
4

6 に答える 6

37

IntelliJ IDEA 14.1.0 を使用していますが、この動作をカスタマイズできます。

「生成...」オプションを使用するか、Alt+Insertショートカットを使用して、「ゲッターとセッター」を選択します。

開いた [フィールドの選択] ウィンドウの上部に [Getter Template] オプションがあります。テンプレートを編集するには、ドロップダウンの横にある [...] ボタンを使用します。

「IntelliJ Default」を選択し、「コピー」ボタンをクリックして、編集可能な「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;
}

getter テンプレート ドロップダウンで選択することにより、コードを生成するときにカスタム テンプレートを使用できるようになりました。

于 2015-03-31T16:12:10.813 に答える
11

使用している IDEA のバージョンについて言及していないので、最近の 8 または 9 であると推測します。

「配置とブレース」の下のコードスタイル設定を確認してください。そこに「1行で簡単な方法」オプションがあるはずです。

于 2009-11-23T19:06:47.437 に答える
11

getter にも equals/hashcode にもテンプレートはありません。これらは IDEA でハードコーディングされています。

ソース

このIntelliJウィッシュリストでそれを見ることができます

于 2009-11-23T19:17:15.060 に答える
10

おそらく視覚的なスペースを節約するために、なぜこれをしたいのかわかりません。その場合は、IntelliJ の機能を使用して単純なゲッター/セッターを折り畳み、行がどのようにかかるかを忘れてください。折りたたみ機能は

設定 -> IDE 設定 -> エディター -> コードの折りたたみ -> コードの折りたたみのアウトラインを表示 -> シンプルなプロパティ アクセサー

于 2009-12-11T11:30:00.800 に答える