1

私は、Eclipse の「Open Call Hierarchy」機能をよく使用して、大規模な Java プロジェクトでメソッド呼び出しがどこに行くのかを追跡します。呼び出し階層がメソッドの呼び出し元をさまざまな内部 Java スレッド関数として示しているため、スレッドの実行に効果的につながっThread.run()た呼び出しではなく、スレッドにイライラします。Thread.start()

Eclipse に Thread.start 呼び出しをメソッドの親として表示させる方法はありますかThread.run()。おそらくこれを行うためのプラグインですか?

4

3 に答える 3

0

興味深い質問です。

nWireをぜひご覧ください。これは、コードのすべての関連付けを 1 つの動的ビューで調べるための新しいツールです。非常に便利で使いやすい。呼び出し元と実装者 (および他のすべての関連付け) を結合します。フィードバックをいただければ幸いです。

于 2009-01-23T06:39:16.910 に答える
0

ご返信ありがとうございます。あなたが作成した最初の 2 つのポイントで、(匿名の Runnable と非匿名の Runnable の両方で) Runnable のコンストラクターの呼び出し階層を調べると便利だとおっしゃいました - はい、同意します! これは通常、私が最終的に行うことです。ただし、これは通常、2 つの階層を頻繁に切り替えることを意味し、一度に表示できるのはそのうちの 1 つだけです。1 つの階層を保持することで、これを回避したいと考えています。

Runnable コンストラクターと run() の呼び出しの間に直接の呼び出し階層はありません。そのため、コンストラクターを run() の「呼び出し元」として追加して呼び出し階層を拡張するのは適切ではないように思えます。ただし、start() への呼び出し、またはスレッドをエグゼキューターに追加するための呼び出し (またはエグゼキューター内での run() 呼び出し) は、呼び出し階層に表示するのに適している場合があります。

私が見つけることができなかったこれに対する既存の解​​決策があるかどうか、私は本当に疑問に思っていました. 十分に必要な場合は、プラグインを自分で試してみる必要があると思います。

私はimplementorsプラグインを試しました。これは便利ですが、この特定の問題には適していません!

nWireも試してみました。十分に探索する時間がなかった多くの機能がありますが、ここで探していることを行う方法を見つけることができませんでした.

于 2009-01-28T10:17:33.103 に答える