使用 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 功能的更多信息。
我正在使用 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 功能的更多信息。