IDEA でコードを書くとき、同じコードを繰り返し書くことがよくあり、非常にイライラします。
IDEA には Live Template 機能が組み込まれており、組み込みのコードのショートカット機能だけでなく、独自の Live Template をカスタマイズすることもできます。
カスタムコマンド#
いくつかのコマンドをカスタマイズできます。 IDEA の設定を開き、Live Template を見つけて、右側に追加します。まず、自分のグループを追加できます。たとえば、私は「My Live」というグループを追加しました。その後、具体的な設定を追加します。
設定の Live Template
変数は$$
で囲むことで、IDEA が変数であることを認識します。変数は右下の「変数の編集」で値を設定できます。
ここで、Expression
列では変数に計算方法を設定できます。たとえば、className()
と指定すると、CLASS
変数は現在のクラス名になります。また、Default value
でデフォルト値を指定することもできます。最後の列は、チェックを入れると、変数が値を計算した場合には入力値をユーザーに入力する必要がなくなります。
以下は私が使用しているいくつかの例です。
logger の定義#
テンプレートテキスト
private static final Logger logger = LoggerFactory.getLogger($CLASS$.class);
変数
名前 | 式 | デフォルト値 | 定義済みの場合はスキップ |
---|---|---|---|
CLASS | className() | ☑️ |
効果
logger の定義
ModelAndView を返す#
テンプレートテキスト
@RequestMapping("/$NAME$.html")
public ModelAndView $NAME$(HttpServletRequest request, HttpServletResponse response) {
logger.info("****************$CLASS$:$NAME$ 開始****************");
logger.info("****************$CLASS$:$NAME$ 終了****************");
return new ModelAndView("$NAME$/$NAME$");
}
変数
名前 | 式 | デフォルト値 | 定義済みの場合はスキップ |
---|---|---|---|
NAME | |||
CLASS | className() | ☑️ |
効果
ModelAndView を返す(URL パラメータあり)#
テンプレートテキスト
@RequestMapping("/$NAME$/{$PATHVARIABLE$}.html")
public ModelAndView $NAME$(@PathVariable("$PATHVARIABLE$") String $PATHVARIABLE$, HttpServletRequest request, HttpServletResponse response) {
logger.info("****************$CLASS$:$NAME$ 開始****************");
logger.info("****************$CLASS$:$NAME$ 終了****************");
return new ModelAndView("$NAME$/$NAME$");
}
変数
名前 | 式 | デフォルト値 | 定義済みの場合はスキップ |
---|---|---|---|
NAME | |||
PATHVARIABLE | |||
CLASS | className() | ☑️ |
効果
新しい Controller を作成#
テンプレートテキスト
@RestController
public class $ControllerName$Controller {
private static final Logger logger = LoggerFactory.getLogger($ControllerName$Controller.class);
/**
* $viewName$
*/
@RequestMapping("/$viewName$.html")
public ModelAndView $viewName$(HttpServletRequest request, HttpServletResponse response) {
logger.info("****************$ControllerName$Controller:$viewName$ 開始****************");
logger.info("****************$ControllerName$Controller:$viewName$ 終了****************");
return new ModelAndView("$viewName$/$viewName$");
}
}
変数
名前 | 式 | デフォルト値 | 定義済みの場合はスキップ |
---|---|---|---|
ControllerName | |||
viewName |
効果
組み込みコマンド#
組み込みのコマンドを使用して、テンプレート形式で文を補完することもできます。例えば、ループ文(for、foreach)、String.format () で文字列を囲む、型変換で式を囲む、(非)空の判定やその他の判定文に基づいて if 文を生成する、instanceOf を使用して分岐判定文を生成するなどがあります。使用方法も非常に簡単で、式の後にドット。を押し、ヒントを入力するか、リストから候補を選択します。一般的な候補には GIF のデモが表示されます。
var 宣言#
null 判定#
notnull 判定#
nn 判定#
for ループ#
fori インデックス付きループ#
not 否定#
if 条件判定#
cast キャスト#