Eclipse 3.1 および J2SE 5.0 入門

Eclipse 3.1 には、J2SE 5.0 (コード名 "Tiger") の新規フィーチャーに対するフル・サポートが組み込まれています。 このサポートの最も重要な結果の 1 つは、ユーザーに全く意識させないこと、つまり、編集、コンパイル、デバッグ、 クイック・フィックス、リファクタリング、ソース・アクション、検索など、J2SE 1.4 に期待する作業すべてが J2SE 5.0 の新しい型および構文を使用してシームレスに行われます。この文書では、Eclipse のユーザーが J2SE 5.0 を使用して作業を行う際に発見するであろう、興味深い機能の一部を紹介します。

前提条件

J2SE 5.0 に対応したコードを作成するためには、J2SE 5.0 Java ランタイム環境 (JRE) が必要です。 一度 J2SE 5.0 JRE を使用して Eclipse を始動すると、その後はデフォルトで使用されるようになります。 そうでない場合は、「インストール済み JRE (Installed JRE's)」ダイアログ (「Windows」>「設定」>「Java」>「イン ストール済み JRE (Installed JRE's)」) を使用して、Eclipse に登録する必要があります。

この文書では、J2SE 5.0 の新規言語フィーチャーの一部を非常に簡単に紹介しますが、これらのフィーチャーに対するきちんとしたチュートリアルではありません。

コンパイラー準拠レベル

新しい J2SE 5.0 のフィーチャーを使用するには、5.0 の準拠レベルが使用可能に設定されたプロジェクトで作業を行う必要があります。 新規プロジェクトには、「新規」>「プロジェクト」ウィザードの最初のページで、簡単に 5.0 準拠のマークをつけることができます。

「新規プロジェクト」ウィザード

既存の J2SE 1.4 プロジェクトは、以下を実行するだけで簡単に J2SE 5.0 に変換できます。
  1. J2SE 5.0 JRE がインストールされていることを確認します。
  2. コード内で 5.0 フィーチャーの使用を開始します。
  3. コンパイラー・エラーのフラグが立ったら、クイック・フィックスを使用してプロジェクトの準拠レベルを更新します。

    J2SE 5.0 を使用可能にするためのクイック・フィックス

コントロールをさらに微調整するには、コンパイラー準拠レベルをワークスペースに対してグローバルに設定する (「Windows」>「設定」>「Java」>「コンパイラー」) か、それぞれのプロジェクトごとに個別に設定 (プロジェクトのコンテキスト・メニューから、「プロパティー」>「Java コンパイラー」) します。 準拠レベルの異なるプロジェクトがワークスペース内に共存でき、相互に依存することができます。 また、「プロパティー」>「Java コンパイラー」>「エラー/警告 (Errors/Warnings)」>「J2SE 5.0 オプション (J2SE 5.0 Options)」を使用して、それぞれのプロジェクトごとに作成されるコンパイラー警告およびエラーの種類を微調整することもできます。

総称型

総称型は、同一クラスのオブジェクトが、異なる型のオブジェクト上で安全に作動できるようにします。 例えば、コンパイル時に List<String> には常に String が、List<Integer> には常に Integer が含まれることを保証します。

Eclipse が非総称型を扱う場合はいつでも、総称型も扱うことができます。

さらに、新しいリファクタリングが追加されました。「総称型引数の推測 (Infer Generic Type Arguments)」は、クラス、パッケージ、またはプロジェクト全体のすべての型参照に対する型パラメーターを推測することができます。

総称型引数の推測の起動

リファクタリングを起動すると、以下のものが作成されます。

起動された総称型引数の推測

Eclipse 3.1 には、総称型に対する参照の検索時に使用できる新規オプションがあります。 以下に例を示します。

リストの 4 つの異なるパラメーター化されたインスタンス生成の例

List<Integer> への参照を選択し「検索」>「参照」>「プロジェクト」を使用すると、4 つすべての行のリスト型が強調表示されます。

フィルターを使用せずに検索

「検索」ビュー・メニューを使用すると、結果はフィルター済みになる場合があります。

非互換のものをフィルタリング (Filter Incompatible)」を使用すると、選択された型と代入互換性がある型への参照のみが残ります。

フィルター非互換

不正確なものをフィルタリング (Filter Inexact)」を使用すると、正確に同じシグニチャーを持つ型参照のみが残ります。

不正確なものをフィルタリング

注釈

注釈は、Java の型およびメソッドを使用する方法、および、Java ソースへ文書化し、コンパイルに影響を及ぼしたり、実行時にクエリーしたりする方法に関するメタデータを添付します。 例えば、@Override は、注釈を付けられたメソッドが、スーパークラス内のメソッドをオーバーライドしない場合に、コンパイラーの警告をトリガーします。

注釈のオーバーライド

Java の型でできることは、注釈でも行うことができます。

Eclipse でフル・サポートされている非常に便利な注釈は、@SuppressWarnings です。 例えば、現在は未使用でも、できれば削除したくない private メソッドの場合は、以下のようになります。

警告: 未使用の private メソッド

この警告に対するクイック・フィックスを起動すると、@SuppressWarnings 注釈の追加が提案されます。

SuppressWarnings が提案されます。

クイック・フィックスを選択すると、注釈が追加されます。 Eclipse コンパイラーは注釈に従って、foo に対する警告を除去します。

SuppressWarnings が挿入されます。

列挙型

列挙型は、既知の有限なオブジェクトの集合によって実行時にインスタンス化される型です。

列挙型

ここでも、Java クラスに対して行えることはすべて、列挙型に対しても行うことができます。

オートボクシング

オートボクシングおよびオートアンボクシングを使用すると、プリミティブ型がオブジェクト参照に割り当てられる場合、またはオブジェクト参照から検索される場合の構文を簡潔にすることができます。

オートボクシングの強調表示

Eclipse のソース操作では、オートボクシングはシームレスに処理され、新規ローカル変数に対する適切な型と適切なコード・アシストを提供します。 コードを理解するために、コンパイル警告に従ってオートボクシングまたはオートアンボクシングのインスタンスのフラグを立てること (「ウィンドウ」>「設定 」>「Java」>「コンパイラー」>「エラー / 警告 (Errors/Warnings)」>「J2SE 5.0 オプション (J2SE 5.0 Options)」> 「ボクシングおよびアンボクシング変換 (Boxing and unboxing conversions)」)、または構文の色の指定を使用してそれらを強調表示すること (「ウィンドウ」>「設定」>「Java」>「エディター」>「構文の色の指定 (Syntax Coloring)」>「Java」>「オート(アン)ボクシングの式 (Auto(un)boxed expressions)」) も可能です。

オートボクシングの強調表示の使用可能化

拡張 for ループ

配列またはコレクションの各エレメントを順番に操作する一般的な事例の場合、J2SE 5.0 では新しい、よりクリーンな構文を使用することができます。 Eclipse 3.1 は、繰り返されるコレクションを自動で予測できる「foreach」コード・テンプレートを提供します。

foreach テンプレートが提案されます。

テンプレートを選択すると、以下のものが作成されます。

foreach テンプレートが挿入されます。

Eclipse 3.1 は、「拡張済み for ループへの変換」クイック・アシストも提供して、可能であれば 1.4 スタイルの for ループをアップグレードします。

その他

他の J2SE 5.0 のフィーチャーはすべて、Eclipse の編集、検索、およびコード操作ツールによって、柔軟に処理されます。

コード化を楽しみましょう。