2011-01-10 4 views
6

EclipseにJavaプロジェクトがある場合は、メソッド名を右クリックして「コール階層を開く」ことができます。 AとBの2つのインタフェースがあり、どちらもメソッドx()を指定しているとします。 Eclipseの「Open Call Hierarchy」をより賢明な方法で使用して、Aからのx()への呼び出しを表示し、Bからの呼び出しを表示しないようにすることは可能ですか?もっとインテリジェントなEclipse「オープンコール階層」?

答えて

6

Eclipseはこれを既に実行しています。テストする場合は、インターフェイスに移動し、x()メソッドを選択し、[コール階層を開く]を実行します。 x()メソッドで、のBメソッドで同じ操作を行います。両方を実装するクラスを持っていない限り、異なるコードの場所を取得する必要があります。そうすることでコンパイルや実行が中断されることはなく、同じメソッドシグニチャーを二重に宣言するだけです。

+0

今私は自分自身を混乱させ始めています。ダミーの例を実際に試してみると、それはあなたの説明どおりに動作しますが、より複雑な階層を持つ私の実際の例は、私が記述した現象に苦しんでいるように見えます。 –

3

頻繁にオーバーライドされたtoString()メソッドでこれを試しました。私がそれを右クリックして "Open Call Hierarchy"を選択すると、Eclipseは自分のワークスペース全体をうまく検索し、そのメソッドシグネチャへのすべての参照を返します。

逆の方法でEclipseに依存することがよくあります。私はメソッド呼び出しを選択し、F3を押して宣言を開きます。しかし、私は、Eclipseが、宣言から呼び出し参照へ、あなたが望む方向に進むことができるとは思わない。

2

「潜在的な一致」を検索結果から削除すると役立ちます。

Preferences -> General -> Search

をそして "潜在的なマッチを無視" チェック:これを試してみてください。