java利用反射来调用一个类的私有方法

一。类如下。

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 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); 这一句话表示不坚持方法的访问权限。

                     方法是什么修饰符都可以被反射机制调用。

            

你可能感兴趣的:(语言基础)