一。类如下。
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); 这一句话表示不坚持方法的访问权限。
方法是什么修饰符都可以被反射机制调用。
本文介绍了一个使用Java反射机制调用私有方法的例子。通过`method.setAccessible(true)`,可以忽略方法的访问权限限制,即使该方法被声明为私有的也可以进行调用。此特性对于在特定场景下进行代码调试或实现某些高级功能非常有用。
526

被折叠的 条评论
为什么被折叠?



