背景:
我有一个名为 Component 的 Java 类,其中有一个名为 getProperty 的方法。在我的源代码管理中,还有许多其他 Java 类实例化了这个 Component 类并在该对象上调用 getProperty 方法。我想对此 getProperty 方法进行修改,因此想分析谁都受到了影响。
要求:
我想搜索所有 *.java 文件(根据包名分布在多个目录中)。问题是 getProperty 方法不仅在 Component 类上可用,而且在许多其他类上可用,例如 System.getProperty 或 Event.getProperty。因此,我使用 grep 的搜索结果返回了混合结果。现在我必须扫描每个搜索结果以查找其中哪些与我相关(即它们是 Component.getProperty 方法的调用者)。
一件事是肯定的,如果有人要调用 Component.getProperty 方法,他们会确保他们显式地导入 Component 类。IE。导入 com.abc.xyz.alpha.Component;
所以我的搜索算法的方向是,如果文件有一个字符串“import com.abc.xyz.alpha.Component;” 然后只在该文件中查找 getProperty 字符串。如果该文件没有 import 语句,则跳过该文件并继续下一个文件。
我需要帮助用 perl 编写这个搜索。有人可以帮忙吗?
感谢您阅读这篇长文。谢谢你的时间。