3.1 の新機能

本書では、Eclipse リリース 3.1 の Java 開発ツールで 3.0 以降に変更された新機能のうち、 特筆すべきものや重要なものの一部を説明します。 本書は複数のセクションに分かれています。

J2SE 5.0


J2SE 5.0

Eclipse 3.1 には、J2SE 5.0 の新規フィーチャー (「Tiger」とも呼ばれます) の完全サポートが含まれています。このサポートの最も重要な成果の 1 つは、それをまったく意識する必要がないということです。-- J2SE 1.4 を使用して作業するすべてのこと (編集、コード・アシスト、コンパイル、デバッグ、クイック・フィックス、リファクタリング、ソース・アクション、検索など) は、J2SE 5.0 の新規の型および構文を使用してシームレスに作業できます。

J2SE 5.0 とのコード対応を作成するには、5.0 Java ランタイム環境 (JRE) が必要です。5.0 JRE を使用して最初に Eclipse を開始する場合、デフォルトで使用されます。その他の場合、「インストール済みの JRE」ダイアログを使用して、Eclipse に 1 つを登録する必要があります。このダイアログは、 「Java」>「インストール済みの JRE」設定を介して、 または「新規 Java プロジェクト」ウィザードの「デフォルトを構成... (Configure default...)」リンクに従うことで表示できます。

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


クイック・フィックス
JRE およびコンパイラー準拠を 5.0 に更新

1.4 プロジェクトに 5.0 構文を入力しようとする場合、 新規クイック・フィックスは、準拠設定の変更に役立ちます。1.5 JRE が必須であることに注意してください。これは、「インストール済み JRE (Installed JRE's)」設定ページで追加できます。

準拠変更のクイック・フィックス


「新規の型 (New Type)」ウィザードが総称型をサポート

「新規の型 (New Type)」ウィザードは、さまざまなフィールドで、J2SE 5.0 の総称型をサポートします。
  • 名前 」フィールドには、型パラメーター宣言を含めることができます。
  • スーパークラス および実装済みのインターフェース には、総称型引数を含めることができます。

「新規の型」ウィザードのピクチャー


列挙型および注釈の作成

列挙型および注釈は、新規の「Enum」ウィザードまたは「注釈」ウィザードを使用して作成できます。

「Enum」ウィザード


型引数の予測

コード・アシストは、Java エディターで型を完了する場合、正しい型引数を挿入します。明確にできない型引数が選択され、タブ・キーにより、1 つの引数から次の引数に移動できます。

以下の例では、 String が最初の型引数として挿入され、Number が 2 番目に提案されています。

スクリーンショット: 「HashMap」は、「Map<String, ? extends Number>」を宣言するメソッドから戻りの型として戻されます。「String」が最初の型引数として挿入され、「Number」が 2 番目として提案されています。

このフィーチャーを試すには、「Java」>「エディター」>「コード・アシスト」設定ページの「引数名を入力 (Fill argument names)」を使用可能にする必要があります。


別の型の診断を非表示にする型パラメーター宣言

Java コンパイラーは、オプションで、別の型を非表示にする型パラメーター宣言にフラグを立てることができます。

別の型の警告を非表示にする型パラメーターが表示されている Java エディターのピクチャー


リファクタリングの名前変更

リファクタリングの名前変更は、型パラメーターの名前変更を処理できるように拡張されました。

総称クラスの型パラメーターの名前変更を示すスクリーンショット


総称型引数の推測
リファクタリング

J2SE 5.0 を使用すると、コードで総称を使用して、読みやすさおよび静的な型の安全を強化できます。「リファクタリング」>「総称型引数の推測」は、新規リファクタリングであり、Java コレクション・フレームワークなどの総称クラス・ライブラリーのクライアントを補助し、これらのコードをマイグレーションします。

引数未加工コンテナー・クライアント - 事前

リファクタリングは、総称型の型パラメーターを推測し、すべての不要なキャストを除去します。これは、 単一のコンパイル単位並びにパッケージおよび Java プロジェクト全体で作動します。

引数未加工コンテナー・クライアント - 事後


総称のクイック・フィックス

未解決の Java 型に対しても、プロポーザルを取得して、新規型パラメーターを作成できるようになりました。

型パラメーターのクイック・フィックスの追加

型パラメーターの Javadoc タグに対するサポートが追加されました。J2SE 5.0 では、 既存の @param タグを使用して型パラメーターを記録します (ただし、名前は不等号括弧で囲みます)。

型パラメーターの Javadoc クイック・フィックス


パラメーター化された型の参照検索の新規検索結果フィルター

List<Integer> などのパラメーター化された型への参照を検索する場合、検索結果には、同様に List のすべての出現箇所への参照が含まれます。検索結果ビューでは、2 つの追加のフィルターが提供され、以下の一致を非表示にできるようになりました。

  • 非互換のものをフィルタリング: このフィルターは、検索パターン指定と代入互換性のないすべての結果を非表示にします。例えば、List<Integer> に対する検索の場合、フィルター非互換一致は、List<String> を非表示にして、List<? extends Number> を非表示にしません。
  • 不正確なものをフィルタリング: このフィルターは、パターンに正確に一致しないすべての結果を非表示にします。上記の例では、フィルターは、List<? extends Number> も非表示にします。

型パラメーターのクイック・フィックスの追加


注釈の完了

単一メンバーの注釈または注釈の属性値内部のコード完了をサポートします。

注釈属性で完了する Java エディターのピクチャー


スーパー・インターフェース診断としての注釈タイプの使用

J2SE 5.0 では、Java 言語により、クラスで注釈タイプをインプリメントできます。ただし、 この方法はお勧めしません。Java コンパイラーは、オプションでこのような使用法にフラグを立てます。

スーパー・インターフェース警告として注釈タイプを使用している Java エディターのピクチャー


@SuppressWarnings 注釈に対するサポート

J2SE 5.0 @SuppressWarnings 注釈がサポートされています。認識されている警告トークン名は、「all」、「boxing」、「dep-ann」、「deprecation」、「incomplete-switch」、「hiding」、「finally」、「static-access」、「nls」、「serial」、「synthetic-access」、「unqualified-field-access」、「unchecked」、「unused」、および「warningToken」です。以下の例では、最初のフィールドは、@SuppressWarnings("deprecation") 注釈でタグ付けされており、deprecation 警告は報告されていません。2 番目のフィールドはタグ付けされておらず、deprecation 警告が報告されています。

@SuppressWarnings の使用法を示す Java エディターのピクチャー

コンパイラー・オプションは、@SuppressWarnings 注釈がアクティブであるかどうかを制御します。「Java」>「コンパイラー」>「エラー/警告」>「J2SE 5.0 オプション」>「'@SuppressWarnings' 注釈の使用可能化」の設定を参照してください。

デフォルトで、処理されない警告トークンは、警告によりシグナル通知されます。この警告は、@SuppressWarnings("warningToken") 注釈を使用しても抑制できます。

warningToken の使用法を示す Java エディターのピクチャー


クイック・フィックス
サポート
@SuppressWarnings

@SuppressWarning 注釈を使用して抑制可能な警告は、 抑制を実行するクイック・フィックスを提供します。以下の未使用のローカル警告にクイック・フィックスを適用すると、

警告を抑制クイック・フィックス

以下の結果になります。

抑制された未使用の警告問題


欠落した @Override 注釈の診断

Java コンパイラーは、オプションでスーパークラス・メソッドをオーバーライドするメソッドにフラグを立てることができますが、適正な @Override 注釈が欠落してしまいます。欠落した @Override 注釈は、クイック・フィックスを使用して追加できます。

@Override 警告が欠落したメソッドを伴う Java エディターのピクチャー

Java」>「コンパイラー」>「エラー/警告」>「J2SE 5.0 オプション」>「欠落した @Override 注釈」の設定を確認してください。

欠落した @Deprecated 注釈の診断

Java コンパイラーは、@Deprecated 注釈を認識し、これらを文書コメント /** @deprecated */ と同等に扱います。オプションで、正しい @Deprecated 注釈の欠落した使用すべきでない構文にフラグを立てることができます (文書コメント・タグではなく注釈の使用を推奨します)。

欠落した @Deprecated 注釈の警告を伴う Java エディターのピクチャー

Java」>「コンパイラー」>「エラー/警告」>「J2SE 5.0 オプション」>「'@Deprecated' 注釈の欠落」の設定を確認してください。

不完全な enum 切り替えステートメントの診断

Java コンパイラーは、オプションで、不完全な enum 切り替えステートメントにフラグを立てることができます。

不完全な enum 切り替えステートメントの警告を伴う Java エディターのピクチャー

Java」>「コンパイラー」>「エラー/警告」>「J2SE 5.0 オプション」>「すべての列挙定数が 'switch' でカバーされていない (Not all enum constants covered on 'switch')」の設定を確認してください。

「enum」識別子のコンパイラー診断

Java コンパイラーは、「enum」が識別子として使用されている場所を検索して、フラグを立てることができます。「enum」は、ソース・レベル 1.4 まででは適切な識別子ですが、5.0 ソースでは、予約済みキーワードです。この警告を使用可能にすると、ソース・マイグレーション問題の予測に役立ちます。 「Java」>「コンパイラー」>「JDK 準拠」>「識別子「enum」を許可しない (Disallow identifier called 'enum')」の設定を参照してください。

「enum」識別子に対するコンパイラーのオプションの診断


クイック・フィックス
enum 定数の作成

クイック・フィックスでは列挙型定数の作成がサポートされています。以下の例では、定数 BLUE が列挙型 Colors から欠落しています。

「enum」識別子に対するコンパイラーのオプションの診断


オートボクシング・パラメーターの
プロポーザル

提案パラメーターには、次のオート(アン)ボクシング・プロポーザルが含まれます。

オートボクシング・プロポーザルを示すスクリーン・ショット

注:「Java」>「エディター」>「コード・アシスト」>「コンプリート機能で引数名を入力 (Fill argument names on completion preference)」の設定を使用可能にする必要があります。


ボクシング/
アンボクシングの診断

J2SE 5.0 のオートボクシング機能は、強力な機能ですが、予期しない動作の原因になる可能性があります (特に引数を渡す場合)。コンパイラーは、オートボクシングまたはオートアンボクシングが実行されるときを示すオプションの診断を導入します。以下の例では、foo(Integer) が呼び出されると思われていましたが、オートアンボクシングが実行されたので、foo(int) が呼び出されました。

アンボクシング警告を伴う Java エディターのピクチャー

Java」>「コンパイラー」>「エラー/警告」>「J2SE 5.0 オプション」>「ボクシングおよびアンボクシング変換」の設定を確認してください。

Java エディターにおける J2SE 5.0 のサポート

Java エディターは、 新規 J2SE 5.0 の言語フィーチャーに対する構文の色の指定を提供します。「Java」>「エディター」>「構文の色の指定」設定ページに移動して、色を変更するか、または 型変数注釈エレメント、および auto(un-)boxed 式 のセマンティックな色の指定を使用可能にします。

enum、注釈、注釈エレメント、型変数、および autoboxed 式の構文の色の指定を示すスクリーン・ショット


ループ・テンプレートの新規機能

foreach テンプレートは、コードに新規の「for」ループを挿入し、繰り返すローカルの Iterable インスタンスを提案します。

挿入された for ループのテンプレートを示すスクリーン・ショット


「拡張 for ループ」への変換

新規クイック・アシスト (Ctrl+1) により、配列およびコレクション上の 旧スタイルの for ループから J2SE 5.0 の拡張 for ループへの変換が提供されます。

拡張 for ループへの変換例のピクチャー

クイック・フィックスにより、以下のようにループが単純化されます。

拡張 for ループのクイック・アシストの結果を示すピクチャー


可変引数
(キャストを必要とする)

Java コンパイラーは、オプションで、疑わしい可変引数メソッド呼び出しにフラグを立てることができます。ヌルの最後の引数は、予想されるように 1 - エレメント配列としてラップされません。明示的なキャストの追加は、コード・クリアの意思表示になります。

可変引数のキャストを必要とするコンパイラー診断

設定は、「Java」>「コンパイラー」>「エラー/警告」>「J2SE 5.0 オプション」>「可変引数の型の一致が不正確」にあります。


静的インポートを使用する完了

Java エディターのコード完了は、コンテキスト・センシティブの完了を推測する場合、静的インポートを処理できます。

静的インポート Math.* のメソッドを完了および検索する Java エディターのピクチャー


静的インポート・
グループ

静的インポートを編成するには、静的インポートのグループを作成して、これらを任意の場所に配置します。「その他」グループを定義して、どのグループにも一致しないすべてのインポートを収集できます。

静的インポート・グループ

「その他」グループのフィーチャーは、非静的インポートに対しても使用可能です。


package-info.java
に対するサポート

特殊なソース・ファイル package-info.java に対するサポートが追加され、パッケージに注釈および文書を付けられるようになりました。すべての JDT ツール (コード・アシスト、コード選択、検索、アウトライン、型階層など) は、この特殊なコンパイル単位内で使用できます。

package-info.java 内部の文書コメントは処理され、標準コメント・タグの構文および参照が検査されます。

package-info.java のパッケージ・エクスプローラーおよび Java エディターのピクチャー


J2SE 5.0 構文のコード・フォーマッター

コード・フォーマッターは、すべての新規 J2SE 5.0 言語構文をサポートします。フォーマッターがこれらをどのように処理するかのコントロールは、「Java」>「コード・スタイル」>「コード・フォーマッター」設定ページにあります。

「空白フォーマッター」設定ページのピクチャー


5.0 ソース・コードのデバッグ

1.5 JRE を使用して、5.0 ソース・コードを実行およびデバッグできます。Java デバッグの評価は、 総称および拡張 for ループなどの J2SE 5.0 構文をサポートします。

ローカル・インナー・タイプに対するクラス・ファイルの名前変更

5.0 準拠モードでは、Java コンパイラーは、ローカル・インナー・タイプに対して、JLS 13.1 (3rd エディション) で指定された命名規則に従うクラス・ファイルを生成します。結果として、以下の例では、X$1$A.class という名前のファイルを生成する代わりに、単純に X$1A.class になります。

ローカル・インナー・タイプのクラス・ファイルを伴うナビゲーターのピクチャー


Java デバッガー


監視ポイントおよび
メソッド入り口
ブレークポイント

Java エディター・ルーラー内をダブルクリックすると、フィールドに監視ポイントが、 メソッド宣言にメソッド入り口ブレークポイントが作成されます。

ロックおよびデッドロック

スレッドが所有するロックおよびスレッドが待機しているロックの両方は、「デバッグ」ビューのドロップダウン・メニューで「モニターの表示 (Show Monitors)」を切り替えることで「デバッグ」ビューでインラインで表示できます。デッドロックに含まれているスレッドおよびロックは、赤色で強調表示されます。

「デバッグ」ビューで表示されたデッドロック


スタック・トレースのナビゲート

スタック・トレースを Java スタック・トレース・コンソールにコピー・アンド・ペーストして、ハイパーリンクを使用して、トレースをナビゲートします。Java スタック・トレース・コンソールは、コンソール・ビューの「コンソールを開く」ドロップダウン・メニューから開くことができます。貼り付けられたスタック・トレースは、標準の「フォーマット」キー・バインディングを介してフォーマットすることができます。

Java スタック・トレース・コンソール


「toString()」のインライン化

変数の toString() により計算された値は、「変数」ビュー・ツリーおよび詳細エリアでインラインで表示できます。「ビュー」ドロップダウン・メニューの「Java 詳細フォーマッター... (Java Detail Formatters...)」コマンドは、このフィーチャーの作業方法の構成に使用されます。

toString() のインライン化の例


ユーザー定義の論理構造

Java デバッガーでは、 さまざまな型のオブジェクトの「変数」ビューに表示されたものを制御できるようになりました。 例えば、 コレクションは、その特定のコレクション・オブジェクトがどのようにインプリメントされているかの詳細ではなく、 値の単純配列として表示できます。

これは、「Java」>「デバッグ」>「論理構造」設定ページから実行します。このページで、特定のクラスまたはインターフェースを単一の式 (例えば、this.toArray()) または一連の名前式に関連付けます。オブジェクトが「変数」ビューに表示される場合、式が評価され、表示する値を作成します。

Java 論理構造を編集するダイアログ


拡張変数値の変更

Java デバッガーでは、「値の変更」ダイアログまたは「変数」ビューの詳細エリアに式を入力して、「保管」を押すことにより変数の値を変更できるようになりました。

式を編集して変数の現行値を置換するダイアログ


変数の検索

「変数」ビューの変数の検索アクションにより、検索する変数の名前を入力できます。入力すると、 「変数」ビューにより、入力したテキストに一致する次の可視変数が選択されます。同様に、「変数の検索 (Find variable)」ダイアログに、 現在入力されているテキストに一致する変数が表示されます。


Javadoc 添付

さまざまな Javadoc ロケーションを JRE のライブラリー内の各 JAR に関連付けることができるようになりました。

JRE ライブラリーごとの Javadoc ロケーションを示すダイアログ


Java コンパイラー


新規 Javadoc の
コンパイラー設定

Javadoc チェックが使用可能の場合、これを構成して、以下を実行できます。
  • @see および @link タグが使用すべきではないエレメントを参照する場合に警告する。
  • @see および @link タグが可視でないエレメントを参照する場合に警告する。

設定は、「Java」>「コンパイラー」>「Javadoc」設定ページにあります。


後置式の効果なし割り当て診断

効果なし割り当てのオプションの診断は、後置式が同じ変数 (例えば、i = i++; など) に割り当てられる場合を検出します。

後置式の割り当てのピクチャー


シリアル・バージョン UID

serialVersionUID」フィールドの宣言が欠落したシリアライズ可能なクラスに対する新規のオプションのコンパイラー診断があります。

設定は、「Java」>「コンパイラー」>「エラー/警告」>「潜在的なプログラミングの問題 (Potential programming problems)」にあります。


内部クラスに対する参照の早期検出

Java のビルド・パス (「プロパティー」>「Java のビルド・パス」>「ライブラリー) のライブラリー (およびプロジェクト) のエントリーに注釈を付け、コードからの直接の参照を回避するすべての内部パッケージを識別できます。例えば、J2SE ライブラリーで一般的に見つかる com.ibm.* または com.sun.* などのベンダー特定のパッケージのいずれかに依存するのは良策とは言えません。アクセス制限は、 ビルド・パスのエントリー上の包含および排他ルールの組み合わせで表現されます。パターン構文は、Ant ファイル・セット表記に従い、クラス・ファイルへのパスに対して一致します。例えば、パターン com/ibm/** を排他ルールとして使用すると、com.ibm パッケージおよびそのサブパッケージ内のすべてのクラスに対するアクセスが制限され、パターン org/eclipse/**/internal/** を排他ルールとして使用すると、内部 Eclipse パッケージに対するすべてのクラスをキャッチします。包含ルールを指定する場合、こららのルールにより一致するものはすべて認められ、その他のすべては認められません。

Java」>「コンパイラー」>「エラー/警告」>「使用すべきではない制限された API (Deprecated and restricted API)」設定では、誤った参照にエラーまたは警告のフラグを立てるかどうかを制御できます (これらはデフォルトで、禁止された参照はエラー、推奨されない参照は警告です)。

「Java のビルド・パス」プロパティー・ダイアログのピクチャー


ライブラリーおよびプロジェクト上のアクセス規則

アクセス規則は、参照先のライブラリーおよびプロジェクト上で定義され、特定の型に対するアクセスを明示的に許可する/許可しない/推奨しないことができます。

アクセス規則を伴う「ビルド・パス」ウィザードのピクチャー


Java エディター


改良折りたたみアイコンおよびキャプション

Java エレメントを折りたたみする場合、Java エディター内の残りの行には、エレメントの名前が含まれます。最初のコメント行は、 折りたたみされた Javadoc コメントに対して表示されます。Java エディターに表示される新規の軽量の「折りたたみ」アイコンは、「オーバーライドおよび実装 (override and implements)」インディケーターとは異なります。

新規折りたたみアートワークのピクチャー


ヘッダー・コメントの折りたたみ

Java ソース・ファイルのヘッダー・コメントおよび著作権文は折りたたみすることができます。

折りたたみされたヘッダー・コメントを示すスクリーン・ショット


継承されたメソッドの出現箇所のマーク

Java エディターでは、選択済みスーパータイプから継承されたメソッドを実装またはオーバーライドするすべてのメソッド宣言を強調表示できます。「Java」>「エディター」>「出現箇所のマーク」>「インターフェースを実装するメソッド (Method implementing an interface)」設定を参照してください。

インプリメント出現箇所のマークのピクチャー


新規出現箇所クイック・メニュー

出現箇所の検索のあるコンテキスト・メニューは、Java エディターで Ctrl+Shift+U を押すと開けます。

注: 古い動作を選択する場合、上記のキー・シーケンスを「ファイル内でのすべての出現箇所の検索 (Search All Occurrences in File)」コマンドに再割り当てすることができます。


Java エディター内の使用すべきではないクラス・メンバーの強調表示

使用すべきではないクラス・メンバーは、拡張強調表示によりマークされます。

使用すべきではないメンバーの強調表示

これは、「Java」>「エディター」>「構文の色の指定」設定ページで構成可能です。

Javadoc 内の参照

Eclipse では、文書コメント内部の Java エレメントに対する参照を認識できるようになりました (例:@see、@link、@linkplain、@throws、@exception、@param、または @value タグ)。これにより、吹き出しヘルプおよび参照先の Java エレメントへのリンクが使用可能になります。

Javadoc 内に吹き出しがある Java エディターのピクチャー


改良された空のワードでの完了

空のワードでの Java コード完了は、完了ロケーションで可視のすべての型を自動的に提案しなくなりました。型の最初の文字を入力して、完了のプロポーザルを取得する必要があります。

空のワードでの完了を示す Java エディターのピクチャー


Javadoc のツールチップ記述

編集」>「ツールチップ記述の表示 (F2)」を介して表示される Javadoc は、SWT ブラウザー・ウィジェットに表示されます。


インデントを調整する「行を移動 (Move Lines)」

行を移動 (Move Lines)」(Alt+Up/Down) および「行をコピー」(Ctrl+Alt+Up/Down) コマンドは、Java エディター内で行を移動する場合に、選択された行のインデントを自動的に調整します。

改良 Java プロパティー・ファイル・エディター

Java プロパティー・ファイルのエディターは、大幅に改良されました。これらは、構文の強調表示、改良ダブルクリック動作、および個別のフォント設定を提供します。構文を強調表示する色は、「Java」>「プロパティー・ファイル・エディター」設定ページで調整します。また、スペル・チェックも使用可能であり、クイック・フィックス (Ctrl+1) を使用して、スペルの問題を修正できます。

Java プロパティー・ファイル・エディターのピクチャー


外部化されたストリングの操作

Java エディターで外部化されたストリングのキーに手間取る場合、関連する外部化された値が吹き出しに表示されます。

外部化されたストリングの吹き出しのピクチャー

吹き出しを Ctrl+ クリックして、対応する Java プロパティー・ファイルのエントリーに直接ナビゲートします。

Java エディターの Ctrl+ クリックのピクチャー


プロパティー・ファイル・エディターのプロパティー・キー から参照にナビゲート

ナビゲート」>「開く」(F3) または Ctrl+ クリックを使用して、プロパティー・ファイル・エディターのプロパティー・キーからキーが参照されるコード内の場所にナビゲートします。

プロパティー・キーのハイパーリンクを示すピクチャー


新規メッセージ・バンドルをサポートする「ストリングの外部化」ウィザード

「ストリングの外部化」ウィザードは、本リリースの新規機能である、Eclipse のストリング外部化メカニズムをサポートします。

「ストリングの外部化」ウィザードのピクチャー


Java エディター内と同様にコード・プロポーザルを作成する新規 API

Java に似た言語のエディターをインプリメントするには? Java エディターで提案されるのと同様の独自のコード・アシスト・プロポーザルを作成します。CompletionProposalCollector のインスタンスを作成して、Java エディターと同様のプロポーザルを取得するか、または、これをサブクラス化して、独自のプロポーザルに混合します。CompletionProposalLabelProvider を使用して、イメージおよびラベルの権利を取得し、CompletionProposalComparator を使用してプロポーザルをソートします。

パッケージ: org.eclipse.jdt.ui プラグインの org.eclipse.jdt.ui.text.java


一般的な Java ツール


新規「型を開く」ダイアログ

Java の「型を開く」ダイアログは、さまざまな面で改良されました。
  • 選択するリストが 1 つのみになりました。
  • 最近開いた型の履歴がダイアログの最初に表示されます。パターンに一致するワークスペースの型は、セパレーター行の下に表示されます。
  • CamelCase パターン・マッチングにより、キー・ストロークの回数を減らすことができます。例えば、TZ は、TimeZone or IOOBE matches IndexOutOfBoundsException に一致します。
  • ダイアログのコンテンツを、ワーキング・セットに対してさらに制限できるようになりました。ワーキング・セットは、 ダイアログのドロップダウン・メニューから選択できます。

「型を開く」ダイアログ

同様に、フードにも大幅な構造上の変更があります。ダイアログで表示される型は、Java 検索エンジンのクエリーで検索できるようになりました。これにより、以前に使用されていたメモリー不足になりがちなアプローチに比べて、通常の Eclipse 開発ワークスペース上で 4 から 6 MB を節約できます。


多数のプロジェクトのあるワークスペースの編成

パッケージ・エクスプローラーのビュー・メニューの「表示」>「ワーキング・セット」を使用して、ワーキング・セットをトップレベルのエレメントとして表示する新規モードを使用可能にします。このモードにより、 多くのプロジェクトを含んだワークスペースの管理がより容易になります。

ワーキング・セット・モードのパッケージ・エクスプローラー

パッケージ・エクスプローラーのビュー・メニューで「ワーキング・セットの選択」を使用して、どのワーキング・セットを表示するかを構成します。ダイアログにより、新規 Java ワーキング・セットの作成、表示するワーキング・セットの定義、および表示の順序の定義が可能になります。ワーキング・セットは、パッケージ・エクスプローラー内でドラッグ・アンド・ドロップおよびコピー・アンド・ペーストを使用して直接再配置することもできます。


「新規 Java プロジェクト」ウィザードの改良された「ソース・フォルダー」ページ

「Java プロジェクト作成 (Java project creation)」ウィザードの改良された「ソース・フォルダー構成 (source folder configuration)」ページは、既存のソースからのプロジェクトの作成を支援します。ソース・フォルダーのエントリーの定義、ツリーの直上のフォルダーの包含/排除、およびアクションの結果の即時のテストが可能です。

「新規ソース・フォルダー」ページ


Java プロジェクト設定の共用

各 Java プロジェクトは、 コンパイラー・オプションおよびコード・スタイルのカスタム設定を持つことができます。これらの設定は、プロジェクト自体に格納され、プロジェクトがリポジトリーからロード (または更新) される場合に自動的に適用されます。

UI を介して Java プロジェクトの設定を変更すると、.settings ディレクトリー内のファイルに自動的に設定が書き込まれます。(設定ファイルのコンテンツは自動生成され、直接の編集の対象にはなりません)。

共用可能なコンパイラー設定


プロジェクト特定の設定へのナビゲート

プロジェクト単位でも構成可能な設定の設定ページは、プロジェクト特定の設定ページへのリンクを提供します。

プロジェクトごとの設定のリンクを示すスクリーン・ショット


.classpath ファイルに格納された Javadoc ロケーション

JAR ファイルおよびクラス・フォルダーに接続された Javadoc ロケーションは、.classpath ファイルに格納されるため、チームで共用できます。3.1 が始動すると、バックグラウンド・ジョブは、以前に内部に格納されたロケーションのすべてを .classpath ファイルにマイグレーションします。

Javadoc ロケーションは、「外部 Javadoc を開く」(CTRL + F2) および Javadoc ウィザードにより使用されます。


クイック・アシストおよびクイック・フィックスのショートカット

ファイル内の名前変更」および「ローカルへの割り当て (Assign To Local)」などの一部の一般的なクイック・アシストは、Ctrl+2 R および Ctrl+2 L を使用して直接呼び出せます。直接呼び出しをサポートするクイック・フィックスについて詳しくは、「キー」設定ページを確認してください。

クイック・アシストのショートカットが表示されている「キー」設定ページ


新規クイック・フィックス

いくつかの Java コンパイラー・オプションに、新規クイック・フィックスが追加されました。例えば、以下のものが挙げられます。
  • 欠落したシリアル・バージョン ID: 「シリアル・バージョン」クイック・フィックスを示すスクリーンショット

新規クイック・アシスト

いくつかのクイック・アシスト (Ctrl+1) が Java エディターに追加されました。
  • ブール式の反転:
    「条件の反転」クイック・アシストのピクチャー
  • 条件式の反転:
    「条件の反転」クイック・アシスト
    以下の結果になります。
    反転の結果
  • 条件式 (? 演算子) から if-else ステートメントへの変換、またはその逆。
  • instanceof チェック後の新規ローカル変数の導入。
    呼び出し前のローカルへのキャストの割り当て
    以下の結果になります。
    クイック・アシスト呼び出し後の結果
  • 単一のサブストリング・リテラルのブレークアウト
    「ストリングの選出」クイック・アシスト
    以下の結果になります。
    「ストリングの選出」クイック・アシストの結果

「編集」メニューから使用可能な「リファクタリングを元に戻す/やり直す (Refactoring Undo/Redo)」

「リファクタリングを元に戻す/やり直す (Refactoring Undo/Redo)」は、「編集」メニューから使用可能になりました。また、個別の「リファクタリングを元に戻す/やり直す」アクションは、グローバル・メニュー・バーから除去されました。また、「リファクタリングを元に戻す/やり直す (refactoring Undo/Redo)」は、Java エディターの「元に戻す/やり直す」に統合され、結果的にエディター内でより透過的な「元に戻す」階層になりました。例えば、エディター内からトリガーされるリファクタリングは、エディター内で、単純に Ctrl+Z を押すだけで元に戻すことができるようになりました。

エディターのコンテキスト・メニューの元に戻すアクション


メンバーの可視性の調節

リファクタリング・コマンドの「メソッドを移動」、「メンバー型を新規ファイルに移動」、「static メンバーの移動」、「プルアップ」、および「プッシュダウン」は、参照先のフィールド、メソッド、および型の可視性を必要なときはいつでも自動的に変更します。

「メンバー型を新規ファイルに移動」リファクタリングを示すスクリーン・ショット


「メソッドを移動」リファクタリング

リファクタリング」>「移動」コマンドは、拡張され、インスタンスの移動メソッドにより良いサポートを提供できるようになりました。新規フィーチャーには、以下のものがあります。
  • 互換性のために代行メソッドを作成するオプション
  • 参照されないフィールドもメソッドのターゲットにできる

インスタンス・メソッド上の「移動」リファクタリングを示すスクリーン・ショット


「使用可能な場合にスーパータイプを使用」リファクタリング

「使用可能な場合にスーパータイプを使用」リファクタリングは、拡張され、instanceof 式内の型の出現箇所が更新されるかどうかの設定が可能になりました。

「使用可能な場合スーパータイプを使用」ウィザードを示すスクリーン・ショット


パッケージ・エクスプローラー内の「ビルド・パス」メニュー

Java パッケージ・エクスプローラーの「コンテキスト」メニューには、新規の「ビルド・パス」メニュー項目が追加され、コンテキスト・センシティブのアクションを提供し、Java プロジェクトのビルド・パスを変更します。新規ソース・フォルダー、アーカイブ、およびライブラリーの追加/除去、およびソース・フォルダーからのフォルダーおよびファイルの包含/排除が可能です。

「ビルド・パス」メニュー


新規 Eclipse のデフォルトのビルトイン・フォーマッター・プロファイル

Eclipse のデフォルトの 3.0 コード・フォーマッター・プロファイルは、Java 規約と名前が付いていますが、このプロファイルを使用するファイルのフォーマットは、インデントにスペースではなくタブを使用します。Eclipse と名前が付いた新規プロファイルが追加され、これは、それまでに使用されたデフォルトのフォーマッターのオプションを反映し、インデントにタブを使用します。真の Java 規約の設定を使用するには、 「Java」>「コード・スタイル」>「フォーマッター」設定ページを使用して、 フォーマッター・プロファイルを Java 規約に切り替えます。

一度に複数の行ラップ設定を変更する

「Java コード・フォーマッター (Java code formatter)」ページを使用すると、 ツリーで複数を選択し、設定を変更することで、一度に複数の行ラップ設定を変更できます。

コード・フォーマッターの行ラップのページ

コード・フォーマッターの設定は、「Java」>「コード・スタイル」>「フォーマッター」設定ページにあります。


混合インデント設定

Java フォーマッター設定により、インデント・サイズから独立してタブ・サイズを構成できます (フォーマッター・プロファイルの「インデント」タブを参照してください)。

Java フォーマッターの設定ページ。フォーマッター・プロファイルの「インデント」タブでインデント設定を設定。

例えば、「タブ・サイズ (Tab size)」を 8、「インデント・サイズ (Indentation size)」を 4 に設定して、4 個のスペースでソースをインデントします。「タブ・ポリシー (Tab policy)」を 「混合」に設定する場合、各 2 つのインデント単位はタブ文字で置換されます。

フォーマッターのプロファイルは、「Java」>「コード・スタイル」>「フォーマッター」設定ページで構成できます。


失敗したテストを最初に再実行

「JUnit」ビューには、新規アクションが追加され、失敗したテスト中のどのテストよりも前に再実行できます。

最後に失敗したテストの再実行