查找哪个类在类中调用方法

时间:2013-09-02 06:33:14

标签: java

以编程方式查找此类的所有方法和所有方法是否被调用。

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进行此操作?

1 个答案:

答案 0 :(得分:1)

你无法合理地做到这一点,因为你永远不知道还有谁可能会打电话给method2。有人可以随时使用你的课程。无论如何,method1也没有被我所能看到的所有人召唤。

你可以让每个方法设置一个静态布尔标志,以便你知道实际调用了哪些方法,然后检查这些布尔标志,但是反射/类对象操作方法将不起作用。

无论如何,对于私有方法,如果IDE是一个好的IDE,IDE会将未使用的方法标记为警告或通知。 Eclipse会这样做。