ここでは、Java 開発ツール Eclipse の リリース 3.2 で変更された新機能のうち、特筆すべきものおよび重要なものの一部を紹介します。 以下のようにグループ化して説明します。
同様に、プラットフォーム内の変更について、Eclipse プラットフォーム 3.2 の新規機能 も参照してください。
Java リファクタリング
|
|
「間接参照の導入」リファクタリング |
「間接参照の導入」は、メソッドのすべての呼び出し元を新規のメソッドにリダイレクトさせる新規のリファクタリングです。 新規のメソッドが元のメソッドを呼び出します。 必要な場合は、新規のメソッドのデフォルトの実装を、ほかの実装で置き換えることができます。 このような間接化は、新規の振る舞いがメソッドに導入される必要があり、しかも以下のようであるときに役に立ちます。
間接化は、オリジナル・メソッドに対するバグ修正として使用するか、またはメソッドに対するすべての呼び出しの前または後で、簡単にコードを追加するための方法として使用します。 「間接参照の導入」リファクタリングを実行するには、メソッドを選択し、「リファクタリング」>「間接参照の導入...」を呼び出し、新規メソッドの名前と宣言されているクラスを提供します。 メソッドは選択済みの宣言されているクラスに追加されます。 そして、すべての参照が、新規のメソッドを呼び出すように更新されます。 |
「スーパークラスの抽出」リファクタリング |
兄弟型のセットから共通のスーパークラスを抽出する「スーパークラスの抽出」と呼ばれる新規のリファクタリング。 選択された兄弟型は、リファクタリングの適用後に、抽出されたスーパークラスの直接のサブクラスになります。 また、「スーパークラスの抽出」を使用すると、コード内で可能な場合はいつでも 、抽出されたスーパークラスを使用することが可能になります。 以下の例で、 次のピクチャーは、Extract Superclass リファクタリングを使用して このリファクタリングを呼び出すには、「リファクタリング」>「スーパークラスの抽出...」を使用します。 |
「クリーンアップ」ウィザード |
「クリーンアップ」は、任意の数の Java ソース・ファイルまたはパッケージ、または Java プロジェクト全体上で呼び出すことができます。 これは、以下の場合に役立ちます。
以下に、どのようなことができるのかを、いくつかの例で示します。
Java 1.4 互換コードを 5.0 にするには、「クリーンアップ」を使用して以下のことを行います。
プロジェクト、パッケージ、またはファイルを選択して「ソース」>「クリーンアップ...」を使用し、このウィザードを開始します。 |
リファクタリング・ヒストリー |
JDT によって提供されるリファクタリングのほとんどは、リファクタリング・ヒストリー内で追跡されるようになりました。
リファクタリング・インフラストラクチャーは、ご使用のワークスペース上で実行されたリファクタリングについての詳細情報を保管します。
|
リファクタリング・スクリプトの作成と適用 |
ローカル・ワークスペース上で実行されたリファクタリングを、「リファクタリング・スクリプト」内にエクスポートし、任意のワークスペース上でリプレイすることが可能になりました。 このようなリファクタリング・スクリプトは、ソフトウェア・レイヤー間の API の大幅な変更の自動修正、またはリッチ・セマンティクスを含むパッチの提供などの、さまざまなシナリオで使用できます。 「リファクタリング」>「スクリプトの作成...」を使用して、リファクタリング・ヒストリーからリファクタリング・スクリプトを作成します 生成されたリファクタリング・スクリプトを任意のワークスペース上に適用するには、「リファクタリング」>「スクリプトの適用...」を使用します。 新規拡張ポイントにより、プラグイン作成者が、新規のあるいは既存のリファクタリングに関するリファクタリング・スクリプト・サポートを提供できるようになりました。
詳しくは、 |
リファクタリングを含む JAR ファイル・エクスポート |
ワークスペースから JAR ファイルをエクスポートする場合、「JAR エクスポート」ウィザードは、JAR ファイル内にリファクタリング情報を含めるためのオプションを提供します。
クライアントは、「リファクタリング」>「JAR ファイルのマイグレーション...」リファクタリングを使用して、古いバージョンの JAR ファイルを新しいバージョンにマイグレーションすることができます。 JAR ファイルが現在選択されている場合は、「ビルド・パス」>「JAR ファイルのマイグレーション...」を使用することもできます。 このリファクタリングは、古いバージョンの JAR ファイルに依存しているすべてのコードを、新しいバージョンの JAR ファイルを使用するように自動的に更新します。 |
API 対応リファクタリング |
リファクタリングされたメンバーの委譲メンバーとしてオリジナル・メンバーを保持することによって API 互換性をサポートするために、いくつかの既存のリファクタリングが拡張されています。
API 互換性を保持するための委譲メンバーの生成は、リファクタリング・ダイアログで「メソッドの名前変更の委譲としてオリジナル・メソッドを保持」をチェックすることで使用可能にできます。 |
型の名前変更により名前付き要素も同様に更新されます。 |
「型の名前変更」リファクタリングは、名前変更された型と同様の名前で変数およびメソッドを名前変更することができるようになりました。 この機能は、メソッド名および変数名と型名との同期化を保持するのに役に立ちます。 このリファクタリングを呼び出すには、型を選択して、「リファクタリング」>「名前変更...」を使用します。 |
「パッケージ名の変更」リファクタリングがサブパッケージの名前変更を行う |
「パッケージ名の変更」リファクタリングは、要求に基づいてサブパッケージの名前変更も行うようになりました。 この例では、 このリファクタリングを呼び出すには、パッケージを選択して、「リファクタリング」>「名前変更...」を使用します。 |
「リファクタリング・プレビュー」のフィルター操作 |
「リファクタリング・プレビュー」ページは、変更のフィルタリングをサポートするようになりました。 これは特に、Java 要素の名前変更中にコメントおよびストリング内のテキスト一致の更新が要求されるときに役に立ちます。 スクリーン・ショットは、クラス Java 要素の可視性に関係する変更もフィルタリングされるようになりました。 |
Java エディター |
|
カスタマイズ可能なコンテンツ・アシスト |
コンテンツ・アシストを繰り返して起動すると (ほとんどのプラットフォーム上では Ctrl+Space)、さまざまなプロポーザル・カテゴリーが循環するようになりました。 お気に入りのプロポーザル・カテゴリーに個々のキー・ショートカットを割り当て、 プラグイン・ライターは、新規の |
コーディング・コンプリート機能におけるラクダ記法のサポート |
コーディング・コンプリート機能は、ラクダ記法パターンをサポートするようになりました。
例えば、NPE でコンプリート機能が使用されると、NullPointerException を提案します。
このサポートは、
|
コードを囲むクイック・メニュー |
新規の「囲む」クイック・メニューを使用すると、コードを含む選択された行を囲むことができます。 このメニューは、カスタム・テンプレートで拡張できます。 テンプレートが、プルする必要がある変数、および final にする必要がある変数を認識するようになりました。 「ソース」>「囲む」を使用するか、または「Alt+Shift+Z」を押して、直接メニューを表示します。 カスタム・テンプレートを「Java」>「エディター」>「テンプレート」設定ページ上に追加できます。テンプレートが必要とするのは、 |
新規クイック・フィックス |
いくつかの新規クイック・フィックスが追加されました。例えば、以下のものが挙げられます。
|
カテゴリー・サポート |
カテゴリーは、Javadoc コメント内で カテゴリーは、クイック・アウトライン内のアウトライン・ビューおよびメンバー・ビューで表示されます。 ビュー・メニューを使用して表示カテゴリーを選択することができます。 |
すべてのメンバーは折りたたみ可能です |
折りたたみが使用可能になっている場合、フィールド、イニシャライザーおよびそのコメントもメソッドと同じ方法で折りたためるようになりました。 すべてのコメントを縮小し、すべてのメンバーを縮小し、折りたたみ構造をリセットするための、新規のテキスト折りたたみコマンドが用意されています。 これらのコマンドは、垂直方向ルーラー上の、Java エディターの折りたたみコンテキスト・メニューにあります。 |
ワークスペース外の Java ファイルのルーラー・サポートとアウトライン |
Java エディターが垂直方向ルーラーおよびアウトライン・ページを表示するようになり、また、クイック・アウトラインが外部 Java ファイルおよびリポジトリーからの Java ファイルのアウトラインを表示できるようになりました。 |
Java コンパイラー
|
|
Java SE 6.0 準拠 |
Java SE 6.0 準拠が完全にサポートされるようになりました。
特に、 |
NULL 参照分析 |
Java コンパイラーは、ローカル変数の基本 NULL 参照分析を実行できるようになりました。 このオプションの診断は、「潜在的なプログラミングの問題」>「NULL 参照」設定を使用して、
分析はかなり保守的であり、一定の割り当て規則に従っていることに注意してください。 すべての可能なケースについて忠告するわけではなく、疑わしいことがあるケース (例えば、あとで NULL 検査が実行される場合など) のみを考慮します。 5.0 準拠モードでは、NULL 参照警告は |
改良された構文リカバリー |
内部 Java パーサーは、構文エラーがある場合に、より柔軟に対応するようになりました。 Eclipse 3.1 では、構文エラーがあると後続のエラーが表示されなくなりました。 パーサーは、エラーのあるステートメントからリカバリーして、さらに分析を実行を続けられるようになりました。 以下の例では、前のステートメントでセミコロンが欠落しているにもかかわらず、メソッド 例えばこれにより、単一ファイルにのみ影響するリファクタリングで、構文エラーを許容することが可能になります。 例えば、まだ完全に書かれていないメソッドの先頭にあるローカル変数を、名前変更または抽出できるようになりました。 |
構成可能エラーを致命的ではないエラーとして処理 |
このオプションが使用不可になっている場合は、コンパイルされたコードは、コード内にエラーが存在していても実行できます。 |
不要な $NON-NLS$ タグの検出 |
不要な レポートのオン/オフは、非外部化ストリングの検出と同じ設定を使用して切り替えることができます。
オン/オフは、
不要なタグを除去するためには、クイック・フィックス (Ctrl+1) を使用するか、または Ctrl+1、Ctrl+Enter を使用して、コンパイル単位内のすべての不要なタグを除去します。 |
raw 型使用の検出 |
raw 型の使用が検出されるようになりました。
raw 型とは、型引数を持たない総称型のことです (例えば、 このオプションの診断は、未検査の型操作から独立して、「総称型」>「raw 型の使用」設定を使用して、
この警告は、 また、raw 型の使用の問題を解決するための支援として、クイック・フィックスを実装しました。 |
メソッド・パラメーター割り当ての検出 |
メソッド・パラメーターへの割り当ては、不良な動作とみなされます。 このような割り当てを検出および報告するには、
|
未使用ラベルの検出 |
Java コンパイラーは、未使用のステートメント・ラベルを検出するようになりました。 このオプションの診断は、
|
switch case のフォールスルーの検出 |
Java コンパイラーは、前の case をフォールスルーして case に入った場合にそれを検出できるようになりました。 空の case が許可されます。 このオプションの診断は、
|
大きな .jar ファイルのパフォーマンスの改善 |
内部 Java モデル・キャッシュのサイズ制限は Eclipse IDE を実行する Java 仮想マシンに割り当てられ、最大ヒープ・サイズ (ほとんどの JVM 上の -Xmx VM 引数) の関数になりました。 大きな .jar ファイルがビルド・クラスパス上にあるときは、ヒープ・サイズを大きくすることにより、パフォーマンスが大幅に向上します。 |
変更された .class ファイルの再作成 |
Java ビルダーは、オリジナル・ソースを使用して、出力フォルダー内の変更された、または除去された .class ファイルを再作成できるようになりました。 これは、
|
接続された Javadoc からの Javadoc ビューとツールチップ |
Javadoc ビューと Javadoc 吹き出しは、接続されたソースを持たないライブラリーに関して、接続された Javadoc から情報を抽出するようになりました。 |
JUnit ツール
|
|
JUnit 4 サポート |
JUnit サポートが更新され、JUnit 4 テストを実行および作成できるようになりました。 JUnit 4 について詳しくは、www.junit.org を参照してください。
|
JUnit ビュー・ヒストリー |
JUnit ビューは、複数の並行テスト実行を取り扱えるようになりました。 新規のヒストリーを使用して、アクティブなテスト実行と最近のテスト実行を切り替えることが可能です。 テストは、すでに実行中のテストを停止することなく、ヒストリーから再実行することが可能です。 これは JUnit 4 の場合と同様に、JUnit 3 でも作動します。 |
Java デバッガー |
|
実行環境 |
実行環境は、ランタイム (例えば、J2SE-1.4) の機能を記述します。
実行環境の参照を基にした実行、デバッグおよびビルドのために使用される JRE を指定することができます。
新規の
実行環境を参照しているビルド・パスまたは起動構成は、明示的 JRE を参照しているものよりもポータブルです。JRE の実行環境はその名前と独立に解決できるからです。 JRE タブまたは「ライブラリーの編集」ウィザードを使用して、実行およびビルドのための実行環境を指定します。 |
システム・プロパティー起動変数 |
新規の起動変数によって、Eclipse ランタイムから、Java プログラムおよび VM 引数としてシステム・プロパティーを動的に指定できるようになりました。 変数は、起動時に解決されるシステム・プロパティーの名前である単一引数を受け入れます。 例えば、java.home システム・プロパティーは、${system_property:java.home} で参照されます。 |
配列の評価サポート |
評価およびコンテンツ・アシストが、Java 配列のためにサポートされるようになりました。
特定の配列を参照するには、 |
Java スレッド・グループ |
ビュー・メニュー内の「スレッド・グループの表示」を切り替えることによって、「デバッグ」ビュー内のスレッド・グループを表示できるようになりました。 |
ランタイム・クラスパスのエクスポートされたエントリー |
ランタイム・クラスパスは、ビルド・パスからエクスポートされたエントリーのみを含むように構成することができます。 デフォルトでは、ランタイム・クラスパスは、すべてのエントリー (エクスポートされたものおよびエクスポートされたのではないもの) を含みます。 「クラスパス」タブから、デフォルトのエントリーを選択して、「編集...」ボタンを使用してオプションを構成します。 |
スレッドの中断と VM の中断 |
|
その他
|
|
Java タイプ・インディケーター |
|
壊れた外部化されたストリングの検索 |
新規のアクションにより、壊れた外部化されたストリングを検索できます。 この検索により、欠落したキー、未使用のキー、および重複したキーが報告されます。 検索を開始するには、プロパティー・ファイル、パッケージ、またはプロジェクト全体を選択し、「ソース」>「壊れた外部化されたストリングの検索」を使用します。 |
Eclipse のストリング外部化機構のサポートの改善 |
Eclipse のストリング外部化機構は、従来のストリングの外部化と同じ種類のサポートを行うようになりました。 Java エディターで外部化されたストリングのキーの入力に手間取っている場合、関連する外部化された値が吹き出しに表示されます。 キーを Ctrl+ クリックして、対応するプロパティー・ファイルのエントリーに直接ナビゲートします。プロパティー・ファイル・エディターで Ctrl+ クリックを使用して、コード内のどこでそのキーが使用されているのかを検索します。 |
例スニペットから型を作成 |
Java の型を含むコードのスニペットを、パッケージまたはソース・フォルダーに直接貼り付け、新規コンパイル単位を作成することができます。
例えば、以下のソース・コードを選択してコピーします。
package pack; public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World"); } }次にパッケージ・エクスプローラーでソース・フォルダーを選択して、Ctrl+V (「編集」>「貼り付け」) を使用します。 これにより、コピーされたコンテンツを使用して新規パッケージ「pack」およびファイル「HelloWorld.java」が自動的に作成されます。 |
hashCode() および equals() の生成 |
メソッド このアクションを呼び出すには、型を選択して、「ソース」 >「hashCode() および equals() の生成...」を使用します。 |
コマンド行のコード・フォーマッター |
新規のヘッドレス・フォーマッター・アプリケーションを使用して、Eclipse UI を開始せずにソース・コードをフォーマットできるようになりました。 コマンド行フォーマッターは、標準の Eclipse アプリケーションとして機能します。 以下のコマンドは、フォルダー src 内に、config.prefs ファイルで指定されたオプションを使用して、ソース・ファイルをフォーマットします。 詳しくは、フォーマッター・アプリケーションの使用を参照してください。 |
Java 類似拡張子のサポート |
.java 以外のファイル拡張子を持ち、pure Java コードを含むファイルがサポートされるようになりました。
Java 類似拡張子は、
|