如何通过反射获取另一个类的私有方法

类一:

package text;

public class Dmeo1 {
    
    private void getPersonName(){
        System.out.println("zhijunming");
    }
}
类二:

先通过Class.forName("text.Dmeo1");获取类的字节码对象,然后f.getDeclaredMethod("getPersonName", null)获取该类的相应的方法,最后通过declaredMethod.setAccessible(true)设置,就可以调用该类的私用方法了;

package text;

import java.lang.reflect.Method;

public class Dmeo2 {

    public static void main(String[] args) throws Exception {
        Class f = Class.forName("text.Dmeo1");
        Method declaredMethod = f.getDeclaredMethod("getPersonName", null);
       declaredMethod.setAccessible(true);
       declaredMethod.invoke(f.newInstance(), null);
    }
}
 

 

你可能感兴趣的:(如何通过反射获取另一个类的私有方法)