バックグラウンド:
getProperty という名前のメソッドを持つ Component という Java クラスがあります。私のソース管理には、この Component クラスをインスタンス化し、そのオブジェクトで getProperty メソッドを呼び出す他の多くの Java クラスがあります。この getProperty メソッドを変更して、誰が影響を受けているかを分析したいと考えています。
要件:
すべての *.java ファイルを検索したい (パッケージ名に従って複数のディレクトリにまたがっている)。問題は、getProperty メソッドが Component クラスだけで使用できるのではなく、System.getProperty や Event.getProperty などの他の多くのクラスで使用できることです。そのため、grep を使用した検索結果が混在した結果を返しています。ここで、各検索結果をスキャンして、自分に関連するものを見つける必要があります (つまり、Component.getProperty メソッドの呼び出し元です)。
1 つ確かなことは、だれかが Component.getProperty メソッドを呼び出す場合、Component クラスを明示的にインポートすることを確実にすることです。すなわち。com.abc.xyz.alpha.Component をインポートします。
したがって、私の検索アルゴリズムは、ファイルに文字列「import com.abc.xyz.alpha.Component;」がある場合、という方向に進みます。次に、そのファイルで getProperty 文字列のみを探します。ファイルに import ステートメントがない場合は、そのファイルをスキップして次のファイルに進みます。
この検索を perl で書くのに助けが必要です。誰かがここで助けてもらえますか?
この長い投稿を最後まで読んでくれてありがとう。御時間ありがとうございます。