如何使用java在java文件中搜索?

如何使用java在java文件中搜索?,java,reflection,Java,Reflection,我需要在java文件中搜索字符串(实际上是一个方法调用)。我还需要知道它在哪里被调用(我指的是java文件中的哪个方法)。最好的方法是什么?反射实际上只能告诉您给定Java对象存在哪些方法和字段。当JVM运行时,Java源代码已经编译成字节码,在源文件中“搜索字符串”是毫无意义的 我认为最好的办法就是像解析普通文本文件一样解析它 class Test { void doTest(){ // do test } public static void main(Strin

我需要在java文件中搜索字符串(实际上是一个方法调用)。我还需要知道它在哪里被调用(我指的是java文件中的哪个方法)。最好的方法是什么?

反射实际上只能告诉您给定Java对象存在哪些方法和字段。当JVM运行时,Java源代码已经编译成字节码,在源文件中“搜索字符串”是毫无意义的

我认为最好的办法就是像解析普通文本文件一样解析它

class Test {
   void doTest(){
    // do test
   }

   public static void main(String[] args){
      for (Method each : Test.class.getMethods()){
         System.out.println(each.getName() + "()");
      }
   }
}
将返回:
“doTest()”

是Java文件还是类文件?如果是前者,并且您关心结果的可靠性,那么您需要解析Java。你的意思是要在源代码中搜索字符串,还是在运行时通过反射查找方法?请更具体一点。@Adam:
grep
无法捕获
(某些小部件)的用法。例如,toString()
。它可以查找
toString()
,但这将返回应用程序中任何位置对名为
toString
的函数的每次使用。它找不到特定类的
toString
的用法。简短版本:
grep
只有在方法的名称非常唯一且未被覆盖时才有用。不确定这如何回答问题。你能详细说明一下吗?