きどたかのブログ

いつか誰かがこのブログからトラブルを解決しますように。

Javaプログラマを名乗るなら、eclipseのSourceメニューを使いこなそう

自宅は英語版eclipse使ってるので、日本人向きじゃないかも…。
メニューのSourceから選ぶよりも、Alt + Shift + Sを使うようにしよう。
全然詳しくないから偉いこと言えないんだけどねー。


●Toggle Comment
Ctrl + 7でも出来る。
Ctrl + /でも出来る。
まあ、普通はCtrl + /でやるよね。


●Remove Block Comment
Ctrl + Shift + \で出来る。
これはあまり使ったことがない。
/* a */の状態でやると、aが残る。
以下の状態でやると、真ん中の*が二個残る。しょぼい。
/*
 *
 *
*/


●Generate Element Comment
Alt + Shift + Jで出来る。
メソッド内でやると、メソッドのJavaDocが出来る。
フィールドでやると、フィールドのJavaDocが出来る。
全然関係ないところ(メソッドAとメソッドBの間とか)でやると、クラスのJavaDocが出来る。
はっきり言って良く使う。


●Correct Indentation
Ctrl + Iで出来る。
これはあまり使わない。
なぜならばCtrl + Shift + Fでフォーマットするからね。


●Format
Ctrl + Shift + Fで出来る。
Preferenceでフォーマットテンプレートをカスタマイズしてから使う。


●Add Import
Ctrl + Shift + Mで出来る。
これはあまり使わない。
なぜならCtrl + Shift + Oでインポート編成しちゃうから。


●Organize Imports
Ctrl + Shift + Oで出来る。
importの追加や不要Import削除なんかをしてくれる。


●Sort Members
これは私個人は非常に使います。
ただし、むやみやたらに使えば良いものではなく、注意も必要。
初期化順序が大事なコードを書いてる場合は、全てをソートせずに、
フィールドやEnum定数や初期化子以外をソートするようにします。
一般的なコードは全てソートしてしまって大丈夫です。
これをするとアウトライントとソート順序と一致してくれたりするだろうから、
後から見ると見やすいという一面がある。
コードが増えていってもちゃんと毎回やっていれば、見やすさは損なわずDiffが取れる。


●CleanUp
正直使ったことがない。
デフォルトでは以下が有効のようだ。

  • Change non static accesses to static members using declaring type
  • Change indirect accesses to static members to direct accesses(accesses through subtypes)
  • Remove unused imports
  • Add missing '@Override' annotations
  • Add missing '@Deprecated' annotations
  • Remove unnecessary casts
  • Remove unnecessary '$NON-NLS$' tags

Preferenceでよく読んでみた。
これは重宝しそうですよ。覚えた方がいいっす。



●Override/Implements Methods...
ウィザードに従って、メソッドを選んだら、空のコードを作ってくれる。
まあ、使うほうではあるかな。


●Generate Getters and Setters...
フィールドからgetterとsetterを作る。
よく使うね。
ひとつ残念なのが、JavaBeans仕様を使ってくれていないので、
JavaDocのコメントがたまに間違ったことになる。
例えばprivate String URL = "URL";でやるとなる。
java.beans.Introspector#decapitalizeなんかの説明と合わない。
まあ、一般的な変数名のルールに合わないってツッコム人もいるだろうけどさ、
それはJavaBeans仕様を決めた奴に言ってくれ、その人も重々承知でやってたはずだよ。


●Generate Delegate Methods...
自分はあまり使わないのだが、使いどころはたくさんあると思う。
インスタンス変数なんかにフォーカスを当ててからやると、
その変数のクラスが持つメソッドと同一のメソッドを作り出せる。
PreparedStatementのラッパークラスを作るだとかするなら楽になるし、
プロキシパターンなんかにも使えるよね。


●Generate hashCode() and equals()...
僕があんまり使わないだけで、一般的には使える代物。
配列はArraysでやってくれるので賢い。


●Generate toString()...
使ったことないけど、さっき使ってみて、以後絶対にこれ使おうと思った。


●Generate Constructor using Fields...
自身のクラスのフィールドから、自身のコンストラクタを作る。


●Generate Constructors from SuperClass...
親クラスのコンストラクターを元にしてサブクラスのコンストラクターを作る。


●Surround With...
Alt + Shift + Zで出来る。
さまざまな「囲うコード」を作ることが出来る。
try-catchだとかforだとか。
正直あんまり使わない。
Ctrl + 1でtry-catchは間に合う。


●External String
ベタ書きな文字列を外部化するってこと。
使ったことないけど、使い方は知っている。
ついでに//$NON-NLS-1$ と、コンパイル警告の関係を知った方が良い。
別の方法で外部化出来てたら//$NON-NLS-1$を付けとけばいいじゃん。