簡単なEclipse用コードテンプレートを作ってみた
Eclipseのコードテンプレートとは
Eclipseの.javaファイル編集中に、メソッドの内部で
syso
と入力した後に「Ctrl+Space」と入力すると、勝手に
System.out.println();
に変換されます。便利です。使ったことのある人も多いと思います。これがコードテンプレート機能です。
作るのは簡単
「Window>Preference」の「Java>Editor>Templates」の「New...」ボタンをクリックすると新しいテンプレートが作成できます。
今回作ってみたのは、「Overlay Weaver」で頻出するConfigurationクラスのsetterとgetterを生成するコードテンプレート。どういうコードが頻出なのかというと、
private int successorListLength = DEFAULT_SUCCESSOR_LIST_LENGTH; public int getSuccessorListLength() { return this.successorListLength; } public int setSuccessorListLength(int len) { int old = this.successorListLength; this.successorListLength = len; return old; }
これが○○Configurationクラスに多くあるわけです。この頻出コードの中身を見ると、共通する部分ごとにまとめることができます。
private 型名 フィールド名 = 初期値; public 型名 getメソッド名() { return this.successorListLength; } public 型名 setメソッド名/(型名 フィールド名) { 型名 old = this.フィールド名; this.フィールド名 = フィールド名; return old; }
すると、結局指定すべきは「型名」「メソッド名」「フィールド名」「初期値」の4つだけということになり、その他の部分は使い回せると分かりますちなみに、フィールド名は「successorListLength」で、仮引数名は「len」でしたが、ここでは書きやすさを重視して、フィールド名に統一しました
あとは、これを参考にして、Eclipseテンプレートの書き方に従うだけです。
private ${field_type} ${name} = ${default_value}; public ${field_type} get${Name}() { return this.${name}; }; public ${field_type} set${Name}(${field_type} ${name}) { ${field_type} old = this.${name}; this.${name} = ${name}; return old; }
こんな感じ。本当は、Templateはもう少し工夫するための機能があるのですが、使い方がよく分からなかったのと、ちょっとやってみたけどあまり良くならなかったので断念して元に戻してしまいました。テンプレートが無いときよりかは楽が出来てミスも減るということで小文字を先頭だけ大文字に変換とか出来たら良かったのですが出来なさそうです
Eclipseで学ぶはじめてのJava
Eclipse PDTではじめるPHPプログラミング入門
Eclipse 3.4 プラグイン開発 徹底攻略