一。类如下。
public class Calculator2{
private int add(int a,int b){
return a+b;
}
}
二,在同一个包中另一个类下调用方法add如下:
public class Test {
public static void main(String[] args){
Calculator2 calculator2 = new Calculator2();
Class<Calculator2> clazz = Calculator2.class;
Object result = null;
try{
Method method = clazz.getDeclaredMethod("add", new Class[]{Integer.TYPE,Integer.TYPE});
method.setAccessible(true);
result = method.invoke(calculator2, new Object[]{2,3});
}catch (Exception e) {
e.printStackTrace();
}finally{
System.out.println(result);
}
}
}
三,总结: method.setAccessible(true); 这一句话表示不坚持方法的访问权限。
方法是什么修饰符都可以被反射机制调用。