Eclipse および J2SE 5.0 入門

リリース 3.1 以来、Eclipse には 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」設定ページを開くJava」>「インストール済み JRE 設定ページを使用して、JRE を Eclipse に登録する必要があります。

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

コンパイラー準拠レベル

新しい J2SE 5.0 のフィーチャーを使用するには、5.0 の準拠レベルが使用可能に設定されており、5.0 JRE があるプロジェクトで作業を行う必要があります。 「新規 Java プロジェクト」ウィザードを開く新規 Java プロジェクト」ウィザードの最初のページで 5.0 JRE を選択するときに、新規プロジェクトは自動的に 5.0 準拠設定を取得します。

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

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

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

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

総称型

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

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

総称型引数の推測の起動

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

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

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

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

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

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

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

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

フィルター非互換

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

不正確なフィルター

注釈

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

注釈の上書き

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

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

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

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

SuppressWarnings が提案されます

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

SuppressWarnings が挿入されます

列挙型

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

列挙型

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

オートボクシング

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

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

Eclipse のソース操作では、オートボクシングはシームレスに処理され、新規ローカル変数に対する適切な型と適切なコード・アシストを提供します。コードを理解するために、コンパイル警告に従ってオートボクシングまたはオートアンボクシング変換のインスタンスのフラグを立てたり ( 「エラー/警告」設定ページを開くJava」>「コンパイラー」>「エラー/警告設定ページの「潜在的なプログラミングの問題」セクションを使用)、または構文の色の指定を使用してそれらを強調表示したり ( 「構文の色の指定」設定ページを開くJava」>「エディター」>「構文の色の指定設定ページの「Java」>「オート (アン) ボクシングの式」セクションを使用) することもできます。

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

拡張 for ループ

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

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

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

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

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

その他

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