我正在研究J2EE应用程序,我们经常遇到问题,我们不确定在运行时是否通过反射调用某些方法。
你知道我怎么能找到所有这些地方?
答案 0 :(得分:0)
通常在这种情况下,如果测试正确完成并且足够彻底,您可以尝试删除可疑的未使用的代码片段,然后运行完整的测试套件,如果一切正常那么好,否则您可以缩小它的范围在测试失败。
现实世界通常不是那么完美。
我最好的选择是使用基于文本内容的搜索(例如Notepad ++ "在文件中搜索" 作为一个选项)通过所有代码库(也可以遍历JAR)和编译的类)并搜索方法名称,因为如果有人调用它,它应该至少通过方法名称来实现。
(请注意,这是不一个通用的解决方案,因为可以用不同的混淆方式调用不同的东西,例如方法不会总是被它们的全名调用。)< / p>
例如,这样的事情可能发生在代码库中:
for (Method m : allMethods) {
String mname = m.getName();
if (mname.startsWith("mySpecialPartialHandle")){
// Invoke mySpecialPartialHandleMethodWithTrailingWords()
}
}
虽然值得一试。
名称越常见,您就越需要深入了解返回的结果。