由反射调用的方法列表

时间:2015-03-16 13:27:23

标签: java java-ee reflection

我正在研究J2EE应用程序,我们经常遇到问题,我们不确定在运行时是否通过反射调用某些方法。

你知道我怎么能找到所有这些地方?

1 个答案:

答案 0 :(得分:0)

通常在这种情况下,如果测试正确完成并且足够彻底,您可以尝试删除可疑的未使用的代码片段,然后运行完整的测试套件,如果一切正常那么好,否则您可以缩小它的范围在测试失败。

现实世界通常不是那么完美。

我最好的选择是使用基于文本内容的搜索(例如Notepad ++ "在文件中搜索" 作为一个选项)通过所有代码库(也可以遍历JAR)和编译的类)并搜索方法名称,因为如果有人调用它,它应该至少通过方法名称来实现。

(请注意,这是一个通用的解决方案,因为可以用不同的混淆方式调用不同的东西,例如方法不会总是被它们的全名调用。)< / p>

例如,这样的事情可能发生在代码库中:

for (Method m : allMethods) {
    String mname = m.getName();
    if (mname.startsWith("mySpecialPartialHandle")){
        // Invoke mySpecialPartialHandleMethodWithTrailingWords()
    }
}

虽然值得一试。

名称越常见,您就越需要深入了解返回的结果。