使用 Javassist 检索私有方法信息

Retrieving private method information using Javassist

我正在使用 JavaAssist 读取 class 信息。这是一个很好而且非常有用的工具。 但是,我注意到它确实枚举或 returns class.

的私有方法

有什么方法可以检索私有方法吗?

为了获取所有方法,其中还包含一个私有方法 class 你可以使用反射:

import java.lang.reflect.*;

public class ExampleClass {

   public static void main(String[] args) {

      ExampleClass cls = new ExampleClass ();
      Class c = cls.getClass();

      // returns the array of Method objects 
      Method[] m = c.getDeclaredMethods();
      for(int i = 0; i < m.length; i++) {
         System.out.println("method found = " + m[i].toString());
      }
   }

   public ExampleClass () {
      // no argument constructor
   }   

   public void publicMethod(String string1) {
      // NOPE
   }

   private void privateMethod(Integer i) {
      // NOPE
   }
} 

您可以使用CtClass.getDeclaredMethods( ) 获取有关私有方法的信息。 或者按照上面的建议,反射效果很好。 尝试阅读 this 以了解有关 javassist 功能的更多信息。