Eclipse を使いこなす上で重要なコマンド、それが Quick Fix(Ctrl-1) です。
これによりキータイプ数が減り作業効率がアップします。
サポートされているQuick Fixの種類は相当あるので、ここでその一覧を紹介します。
クラスの package 宣言がディレクトリの階層構造と合っていない時のサポートです。
Add missing package declaration or correct package declaration
package宣言を、ディレクトリの階層構造に合わせて修正します。
簡単に言えば、クラスの配置位置 を正とするパターンです。
Move compilation unit to package that corresponds to the package declaration
クラスをpackage宣言で記述されたパッケージに移動します。
簡単に言えば、package宣言 を正とするパターンです。
import文関連のサポートです。
Remove unused, unresolvable or non-visible import
不必要なimport文を削除します。
Invoke 'Organize imports' on problems in imports
Organize Imports コマンドを使って不要なimport文を一掃します。こちらの方が便利でしょう。
クラス(インターフェイス、enum、注釈)関連のサポートです。
未解決のクラスを新規作成します。
例えば…
new UnknownClass();
このような文があった時、サポートを利用するとクラスの新規作成ダイアログが立ち上がります。
新規クラス作成→ロジック記述 という流れより、こちらの方が自然ですね。
Change visibility for types that are accessed but not visible
非可視のメソッドなどを参照している時、そのメソッドのアクセス識別子を適切なものに変更します。
Rename to a similar type for references to types that can not be resolved
未解決のクラス名を類似したものに置き換えます。
new Stringbuffer(); // 'b' が小文字
こういったタイプミス時に重宝します。
Add import statement for types that can not be resolved but exist in the project
未解決のクラスと同名のクラスが存在するとき、そのimport文をソースに追加します。
未解決のクラスと同名のクラスが二つ以上存在するとき、どちらかを選択してimport文をソースに追加します。
Javaファイル名とソース上のクラス名が一致しないとき、そのどちらかにもう一方を合わせます。
未使用のprivateクラス(内部クラス)を削除します。
コンストラクタ関連のサポートです。
記述されたコンストラクタが存在しないとき、そのコンストラクタを新規作成します。
Reorder, add or remove arguments for constructor references that mismatch parameters
コンストラクタ引数の順番が間違っていると推測されるとき、それを正しく修正します。
Change method with constructor name to constructor (remove return type)
コンストラクタと同名のメソッドが定義されているとき、それをコンストラクタに変換します。
具体的には、戻り値の宣言を無くすだけです。
Javaではクラス名と同名のメソッドを定義することは可能ですが、 紛らわしいので止めた方がいいとされています。
Change visibility for constructors that are accessed but not visible
コンストラクタの可視性を変更します。
Remove unused private constructor
未使用のprivateコンストラクタを削除します。
デフォルトコンストラクタを作成します。
実装する必要があるメソッドが定義されていない場合、そのクラスを abstract 宣言するか
未実装のメソッドを空実装します。
メソッド関連のサポートです。
Create new method for references to methods that can not be resolved
記述されたメソッドが存在しないとき、そのメソッドを新規作成します。
Rename to a similar method for references to methods that can not be resolved
未解決のメソッド名を類似したものに置き換えます。
Reorder or remove arguments for method references that mismatch parameters
メソッド引数の順番が間違っていると推測されるとき、それを正しく修正します。
Correct access (visibility, static) of referenced methods
メソッドのアクセス識別子を適切なものに修正します。
未使用のprivateメソッドを削除します。
メソッドの戻り値が間違えていると推測されるとき、その型を修正します。
Add return statement if missing
戻り値が必要なのに定義されていないメソッドに対して、デフォルト値でのreturn文を追記します。
For non-abstract methods with no body change to 'abstract' or add body
実体(BODY)の無いメソッド定義文を、abstract句を付けるか空のBODYを付けます。
abstractでないクラスにabstractメソッドが定義されているとき、
abstract句を外すかクラスをabstractにします。
For an abstract/native method with body remove the abstract or native modifier or remove body
実体(BODY)のあるabstract/nativeのメソッドに対して、BODYを削除するかabstract/native句を外します。
Change method access to 'static' if method is invoked inside a constructor invocation (super, this)
メソッド呼び出しをstatic形式に変換します。
Change method access to default access to avoid emulated method access
メソッド呼び出しを通常形式に変換します。
フィールド、ローカル変数関連のサポートです。
Correct access (visibility, static) of referenced fields
フィールドのアクセス識別子を適切なものに修正します。
未解決のフィールドを作成します。
Rename to a variable with similar name for references that can not be resolved
未解決の変数名を類似したものに置き換えます。
未使用のprivateフィールドを削除します。
Correct non-static access of static fields
staticフィールドをnon-static形式で参照している箇所を修正します。
Add 'final' modifier to local variables accessed in outer types
外部クラスから参照されているローカル変数に final 識別子を付加します。
Change field access to default access to avoid emulated method access
フィールドへのアクセスを通常形式に変換します。
Change local variable type to fix a type mismatch
ローカル変数の型を適切なものに変換します。
Initialize a variable that has not been initialized
初期化されていない変数を初期化します。
例外関連のサポートです。
不必要なcatchブロックを削除します。
catchされていない例外をcatchするtry/catch節を新規作成または追加します。
catchされていない例外を、メソッドのthrows節として追加します。
ビルドパス関連のサポートです。
Add a missing JAR or library for an unresolvable type
未解決クラスを解決するためにjarファイルをクラスパスに追加します。
Open the build path dialog for access restriction problems or missing binary classes.
ビルドパス用ダイアログを開きます。
Change project compliance and JRE to 5.0
プロジェクトのコンパイラおよびJREをバージョン5.0に変換します。
Change workspace compliance and JRE to 5.0
ワークスペース(全プロジェクト)のコンパイラおよびJREをバージョン5.0に変換します。
その他のサポートです。
Add cast or change cast to fix type mismatches
型の相違がある箇所に対してキャスト文を追加します。
Let a type implement an interface to fix type mismatches
実装が必要とされるインターフェイスのimplement句を追加します。
class SomeClass {
...
button.addListener(this);
...
}
例えばこのような場合、SomeClass は Listener を実装する必要があると推測されます。
Quick Fix を適用すると、
class SomeClass implements Listener { ...
となります。
For non-NLS strings open the NLS wizard or mark as non-NLS
NLS(National Language Support)されていない文字列リテラルが見つかったら
NLSウィザードを開いてNLS対応を促します。
Add missing @Override, @Deprecated annotations
省略されている @Override, @Deprecated を明示的に記述します。
Suppress a warning using @SuppressWarning
@SuppressWarning を記述してコンパイラワーニングを出ないようにします。