北冥有鱼其名为昆
2019-08-29 17:05
private void ceshi(int a){
System.out.println("0000000000");
} ceshi a=new ceshi();
Class c=a.getClass();
try {
Method m=c.getMethod("ceshi",int.class);
m.invoke(a,1);
}catch (Exception e){
e.printStackTrace();
}
package com.herman.reflect;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class ClassDemo03 {
public static void main(String[] args) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {
A a = new A();
Class<? extends A> aClass = a.getClass();
Method self = aClass.getDeclaredMethod("self");
self.setAccessible(true); //暴力反射
self.invoke(a);
}
}
class A {
public void printf(String a) {
System.out.println("printf...." + a);
}
private void self() {
System.out.println("Access denied!");
}
}
首先你要明白它的访问权限,了解后,根据相应权限用get方法就行
setAccessible


我已经通过度娘知道答案了。可以获取
我也想问,应该是不行的吧,如果可以用反射获得private方法太不安全了,那public和private一点区别也没了
反射——Java高级开发必须懂的
151736 学习 · 343 问题
相似问题