最初に
budougumi0617さんがコメントで教えてくださった方法のほうが明らかに早いので、そちらを使うことをお勧めします。
ここから下はコメントで教えていただく前に私が書いた内容。
正規表現を使えば定型的なコンストラクタをあっというまに作成することができます。
さらに、フィールドの宣言も作成することができます。
User
クラスに次のコンストラクタを定義するとします。
User(String name, int tel, String email, String department) {
}
上のコンストラクタの中でthis.name = name;
という具合にフィールドに値を詰めていく
User(String name, int tel, String email, String department) {
this.name = name;
this.tel = tel;
this.email = email;
this.department = department;
}
というコンストラクタにしたい、けれども
- 引数が多すぎる(引数が多すぎるのはたいていオブジェクト指向的じゃないコードになっていることが原因なので根本的に解決したほうがいいですが・・・・)
- 単にめんどくさい
といった理由で手動で書きたくないときは、正規表現で書くことができます。
this.name = name;
を自動で作る
コンストラクタの引数
String name, int tel, String email, String department
の
(^|, )([^ ]*) ([^( |,)]*)
を\nthis\.\3 = \3;
に置換すると
this.name = name;
this.tel = tel;
this.email = email;
this.department = department;
となります。これをコンストラクタ内に書けばフィールドに代入するコードが一発でできあがります。
private String name;
とフィールドも新規に定義してthis.name = name;
も作る
先ほどの正規表現のうち、置換先を\nthis\.\3 = \3;\nprivate \2 \3;
とすると
this.name = name;
private String name;
this.tel = tel;
private int tel;
this.email = email;
private String email;
this.department = department;
private String department;
となります。
あとは、これを、テキストエディタの機能で行単位でソートすると、(Windowsのサクラエディタなら全選択して Alt + a。ほかにはSublime Text やAtomで同じくソートの機能を使えた気がします)
private String department;
private String email;
private String name;
private int tel;
this.department = department;
this.email = email;
this.name = name;
this.tel = tel;
上半分がフィールド、下半分がコンストラクタの中でフィールドへの代入を行うコードになりました。
あとはこれをコピペすれば使えます。
仮引数の順序と、フィールドやthis.foo = foo
の順序とが、一致していないのは、許してください。
これくらいIDEでうまくやる方法がありそうだと思ったのですが、なさそうだったので、正規表現でやりました。