Java エレメントの編集

このセクションでは、ワークベンチ内の Java エレメントを編集します。

「アウトライン」ビューの使用

  1. Java エディターでファイル junit.samples.VectorTest.java を開くには、「パッケージ・エクスプローラー」ビュー内のファイルをダブルクリックします。

  2. 構文の強調表示に注目してください。 それぞれ別個に与えられる Java ソースのパーツの例は次のとおりです。

    • 標準コメント
    • Javadoc コメント
    • キーワード
    • ストリング
    構文の強調表示
  3. 「アウトライン」ビューをよく見てください。 このビューは、パッケージ宣言、インポート宣言、フィールド、タイプ、およびメソッドを含む、Java ファイルの概要を表示します。 「アウトライン」ビューは、Java エレメントが static、abstract、final などであるかどうかも示します。 また、このビューは、メソッドが基本クラス (overridden) からオーバーライドされるか、あるいはメソッドのインプリメント時にインターフェース (implements) からオーバーライドされるかも示します。

    「アウトライン」ビュー
  4. 「アウトライン」ビュー・ツールバーの「フィールドの非表示」、「static メンバーの非表示」、および「非 public メンバーの非表示」ボタンを切り替えて、ビューの表示をフィルターに掛けます。

    「アウトライン」ビュー・ツールバー
  5. 「アウトライン」ビューの「ソート」ボタンを切り替えて、Java ファイルでの表示順ではなくアルファベット順に Java エレメントをソートします。

  6. Java ファイル全体を表示してソース・コードを編集したり、ビューを単一のエレメントに絞り込むこともできます。 ツールバーの「選択されたエレメントのソースのみを表示」ボタンをクリックします。

    次に、「アウトライン」ビューでエレメントを選択し、選択したエレメントのみが Java エディターに表示されていることを確認します。

    「選択されたエレメントのみを表示」ツールバー・ボタン
  7. 選択されたエレメントのソースのみを表示」ボタンを押して、再び Java ファイル全体を表示します。

    「アウトライン」ビューで各種エレメントを選択し、それらがエディター内の全ファイル・ビューにもう一度表示されるかどうかを確認してください。 これで、Java エディターの左側の枠にある垂直ルーラー上の範囲標識によって「アウトライン」ビューの選択部分が示されます。

    範囲標識

メソッドの追加およびコード・アシストの使用

  1. 「アウトライン」ビューのツールバーのアルファベット順「ソート」ボタンがオフに切り替わっていることを確認してください。

  2. Java エディターで VectorTest.java ファイルの終わり (ただし、型の右大括弧の前) に次を入力することでメソッドの追加を開始します。

    public void testSizeIsThree() {
    

    エディター領域にメソッド名を入力すると、新規メソッドが「アウトライン」ビューの一番下に表示されます。

    「アウトライン」ビュー内の新規メソッド
  3. 保管」ボタンをクリックします。

    コンパイル単位が自動的にコンパイルされ、エラーが「パッケージ・エクスプローラー」ビュー、「タスク」ビュー、および垂直ルーラーに表示されます。 「パッケージ・エクスプローラー」ビューでは、エラーは、そのエラーを含むコンパイル単位のプロジェクトにまで伝播します。

    パッケージ・エクスプローラーでのエラーの伝搬
  4. 次を入力して新規メソッドを完成させます。

        assertTrue(fFull.size() == 3);
    }
  5. ファイルを保管します。

    エラー標識が消えたことを確認してください。

ローカル・ヒストリーからのメソッドの削除および置換

このセクションでは、ローカル・ヒストリー・フィーチャーを使用して、以前に保管しておいた個々の Java エレメントに切り替える方法を説明します。

  1. 「アウトライン」ビューで、作成したばかりのメソッドを選択して、コンテキスト・メニューから「削除」をクリックすることによってこれを削除します。

  2. Java エディターで、VectorTest.java ファイルの終わりに次を入力して、新しいバージョンのメソッドを追加します。

    public void testSizeIsThree() {
        fFull.add(0, new Integer(0));
        fFull.remove(new Integer(3));
        assertTrue(fFull.size() == 3);
    }

    ファイルを保管します。

  3. 「アウトライン」ビューで、メソッド testSizeIsThree() を選択して、そのコンテキスト・メニューから「ローカル・ヒストリーからの置換」を選択します。

  4. ローカル・ヒストリーから Java エレメントを置換」ダイアログのローカル・ヒストリー・リストには、エレメントの各種保管状況が表示されます。 「Java ソースの比較」ペインには、選択されたヒストリー・リソースと既存のワークベンチ・リソースとの差異の詳細が表示されます。

    ローカル・ヒストリーからの置換
  5. 「ローカル・ヒストリー」ペインで、削除したバージョンを選択し、次に「置換」ボタンをクリックします。

    Java エディターで、メソッドが選択されたヒストリー・バージョンに置換されます。

  6. ファイルを保管します。

コンテンツ・アシストの使用

  1. Java エディターで junit.samples.VectorTest.java ファイルを開きます。

  2. 「アウトライン」ビューで testSizeIsThree() メソッドを選択して、このメソッドに移動します。

  3. 以下の行をメソッドの終わりに追加します。

    Vector v = new Vector();
    for (int i=0; i<3; i++)
        v.addElement(new Object());
    assert
  4. カーソルを assert という語の終わりに置き、Ctrl+Space を押してコンテンツ・アシストをアクティブにします。

    プロポーザルのリストを持つコンテンツ・アシスト・ウィンドウが表示されます。 リストをスクロールして選択可能な項目を表示します。

    コンテンツ・アシスト
  5. コンテンツ・アシスト・ウィンドウをアクティブにしておいて、assert の後に 't' を入力します (両者の間にはスペースを挿入しないでください)。 リストが絞り込まれ、'assert' で始まるエントリーのみが表示されます。

    リスト内の項目を選択し、各種項目の上にマウス・カーソルを移動すると、項目ごとに使用可能な Javadoc ヘルプが吹き出しで表示されます。

    フィルター操作されたコンテンツ・アシスト
  6. リストから assertTrue(boolean) を選択し、Enter を押します。

    assertTrue(boolean) メソッドのコードが挿入されます。

  7. 行を次のように入力します。

    assertTrue(v.size() == fFull.size());
  8. ファイルを保管します。

テンプレートの使用

  1. Java エディターで junit.samples.VectorTest.java ファイルを開きます。

  2. 次を入力して新規メソッドの追加を開始します。

    public void testValues() {
        Integer[] expected= new Integer[3];
        for
  3. カーソルを for の終わりに置き、Ctrl+Space を入力してコンテンツ・アシストを使用可能にします。

    for のコンテンツ・アシスト
  4. for - iterate over array エントリーを選択します。

    テンプレートがエディターに挿入され、i が強調表示されます。 ローカル配列名が自動的に推測されます。

    挿入された for テンプレート
  5. Enter を押してテンプレートを確認します。

  6. for ループを次のように入力します。

    public void testValues() {
        Integer[] expected= new Integer[3];
        for (int i= 0; i < expected.length; i++) {
            expected[i]= i + 1;
        }
        
        Integer[] actual= to
  7. カーソルを to の終わりに置き、Ctrl+Space を入力してコンテンツ・アシストを使用可能にします。 toarray - convert collection to array を選択します。

    挿入された for テンプレート

    テンプレートがエディターに挿入され、type が強調表示および選択されます。

    挿入された for テンプレート
  8. Integer を入力して選択部分を上書きします。 配列コンストラクターの型が同調して変更されます。

  9. Tab を入力して collection を強調表示および選択し、fFull を入力して選択部分を上書きします。

    挿入された for テンプレート
  10. Enter を入力してテンプレートを確認します。

  11. 以下のコードの行を追加してメソッドを完成させます。

            assertEquals(expected.length, actual.length);
            for (int i= 0; i < actual.length; i++)
                assertEquals(expected[i], actual[i]);
        }
  12. ファイルを保管します。

インポートの編成

  1. Java エディターで junit.samples.VectorTest.java ファイルを開きます。

  2. 「アウトライン」ビューでインポート宣言を選択し、コンテキスト・メニューから「削除」を選択することでこれを削除します。

    「アウトライン」ビュー・コンテキスト・メニュー
  3. エディターのコンテキスト・メニューから、「インポートの編成」を選択します。

    必須の import ステートメントが、パッケージ宣言の下のコードの先頭に追加されます。

    インポートの編成

    また、「インポートの編成」は、「アウトライン」ビューのインポート宣言のコンテキスト・メニューから直接呼び出すこともできます。

    注:「設定」(「ウィンドウ」>「設定」>「Java」>「インポートの編成」) でインポート宣言の順序を指定できます。

  4. ファイルを保管します。

メソッドの抽出

このセクションでは、junit.framework.TestSuite のコンストラクターのコードを改良します。 コードが意図することをより明確にするために、テスト・ケースを収集するコードを基本クラスから抽出して、そのコードを collectTestMethods という新規メソッドにします。

  1. junit.framework.TestSuite.java ファイルで、以下の範囲のコードを選択します。

    Class superClass= theClass;
    Vector names= new Vector();
    while (Test.class.isAssignableFrom(superClass)) {
        Method[] methods= superClass.getDeclaredMethods();
        for (int i= 0; i < methods.length; i++) {
            addTestMethod(methods[i], names, constructor);
        }
        superClass= superClass.getSuperclass();
    }

    選択の拡張フィーチャーを使用してコード範囲を選択します。

    1. コンストラクター TestSuite(Class) をナビゲートします。
    2. カーソルを while の直前に置きます。
    3. Alt+Shift+ 上矢印を押します。
    4. Alt+Shift+ 左矢印を 2 回押します。
  2. エディター内の選択部分のコンテキスト・メニューから、「リファクター」>「メソッドの抽出...」を選択します。

    コンテキスト・メニュー抽出メソッド
  3. メソッド名」フィールドに「collectInheritedTests」と入力し、「次へ」をクリックします。

    「メソッドの抽出」ウィザードのページ 1
  4. リファクタリングの「プレビュー」ページに、加えられる変更点が表示されます。

    終了」を押してメソッドを抽出します。

    「メソッドの抽出」ウィザードのページ 2
  5. 「アウトライン」ビューで抽出されたメソッドを選択して、このメソッドに移動します。

    抽出されたメソッド

「宣言を開く」および「型階層で開く」を使用

  1. Java エディターで junit.samples.money.MoneyTest.java ファイルを開きます。

  2. MoneyTest クラス宣言の最初の行で、TestCase スーパークラス指定を選択し、以下のいずれかを行います。

    • メニュー・バーから「ナビゲート」>「宣言を開く」と選択する。
    • F3 を押す。

    注: このコマンドは、メソッドおよびフィールドに対しても機能します。

    「宣言を開く」メニュー

    TestCase スーパークラスがエディター・エリアで開かれ、「アウトライン」ビューにも表示されます。

    開かれた宣言
  3. TestCase.java のエディターのタブをクリックし、そのエディターをアクティブにします。 クラス宣言が選択されていることを確認してから以下を実行します。

    • メニュー・バーから「ナビゲート」>「型階層を開く」を選択するか、または
    • F4 を押す。
    「型階層を開く」メニュー
  4. 「階層」ビューが開き、TestCase クラスが表示されます。

    「型階層」ビュー

    注: 「階層」ビューでは、型およびメソッドでもエディターを開くことができます。

関連概念

Java ビュー
Java エディター
リファクタリング・サポート
テンプレート

関連タスク

Java エディターの使用
エレメントの表示および非表示
個別エレメントまたは全 Java ファイルの表示
Java ビューでのエレメントのソート
ローカル・ヒストリーの使用
コンテンツ・アシストの使用
テンプレートの使用
インポート・ステートメントの管理
リファクタリング
プレビュー付きのリファクタリング
「階層」ビューの使用
Java エレメントの型階層を開く
現行のテキスト選択で型階層を開く
選択されたエレメントでエディターを開く

関連参照

Java「アウトライン」ビュー
Java コンテンツ・アシスト
テンプレート設定
インポート編成設定
Java エディター設定
メソッドの抽出エラー
「型階層」ビュー