以编程方式查找此类的所有方法和所有方法是否被调用。
class blah {
void method1() {}
void method2() {}
}
class blahTest {
public static void main(String[] args) {
Class classToAnalyze = blah.class;
/* DO SOMETHING TO DETERMINE WHO IS CALLING blah CLASS AND IT'S METHODS
AND WHICH METHODS ARE NOT GETTING CALLED ANYWERE */
String sMethod = /* GET THIS VALUE FROM PREVIOUS OPERATION */
System.out.println("Method which is not getting called anywere: " + sMethod);
}
}
输出:
Method which is not getting called anywere:method2()
我如何以编程方式从java进行此操作?
答案 0 :(得分:1)
你无法合理地做到这一点,因为你永远不知道还有谁可能会打电话给method2
。有人可以随时使用你的课程。无论如何,method1
也没有被我所能看到的所有人召唤。
你可以让每个方法设置一个静态布尔标志,以便你知道实际调用了哪些方法,然后检查这些布尔标志,但是反射/类对象操作方法将不起作用。
无论如何,对于私有方法,如果IDE是一个好的IDE,IDE会将未使用的方法标记为警告或通知。 Eclipse会这样做。