-3

以编程方式查找此类的所有方法在何处被调用或根本不被调用。

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以编程方式执行此操作?

4

1 回答 1

1

你不能合理地这样做,因为你永远不知道还有谁可能在打电话method2。有人可以随时使用您的课程。method1无论如何,我也没有被要求。

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

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

于 2013-09-02T06:35:48.247 回答