检查在Java中调用函数的位置

时间:2015-01-22 03:53:10

标签: java

我正在研究一些使用特定输入流读取器从文件系统读取的软件。该类有一个名为read()的函数,在某些驱动程序中用于读取文件。我想找出驱动程序的位置/源文件。如果我只知道read()的实现位置,我怎么能找到它的使用位置?

2 个答案:

答案 0 :(得分:0)

您可以在项目的顶级目录上运行此命令,以查找read()的使用位置:

grep -n --recursive " read(" *

这将递归搜索字符串的所有文件"读取("并打印出它所在的文件,以及行号。

不幸的是,知道read()的实现位置不会直接告诉你它在哪里使用。方法的实现不依赖于它的使用位置,反之亦然。如果它是依赖的,那么Javadocs中的每个库都会有关于使用这种库的所有模糊程序的信息。

答案 1 :(得分:0)

假设您可以修改read(),您可能会获得堆栈跟踪。抛出未经检查的异常或执行类似

的操作
StackTraceElement[] st = Thread.currentThread().getStackTrace();
System.out.println(Arrays.toString(st));