欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

利用java反射机制调用类的私有方法(推荐)

程序员文章站 2024-03-13 13:33:03
试想一下,如果你可以轻易地调用一个类的私有方法,那么是不是说你的封装都失效了?最近在看java的反射机制,发现居然可以利用java的反射机制去调用其他类的私有方法,至于这能...

试想一下,如果你可以轻易地调用一个类的私有方法,那么是不是说你的封装都失效了?最近在看java的反射机制,发现居然可以利用java的反射机制去调用其他类的私有方法,至于这能干什么,那就见人见智了。。

我写的一段简易实例代码如下:

import java.lang.reflect.invocationtargetexception;
import java.lang.reflect.method;

/**
 * @author thomaslwq 
 * @version 创建时间:sep 4, 2012 9:53:49 pm
 * 类说明
 */
public class reflectiontest {
  
  public static void setobjectcolor(object obj) throws securityexception, nosuchmethodexception, illegalargumentexception, illegalacces***ception, invocationtargetexception{
    class cls = obj.getclass();
    //获得类的私有方法
    method method = cls.getdeclaredmethod("privatemethod", null);
    method.setaccessible(true); //没有设置就会报错
    //调用该方法
    method.invoke(obj, null);
  }
  public static void main(string args[]) throws securityexception, illegalargumentexception, nosuchmethodexception, illegalacces***ception, invocationtargetexception{
    
    setobjectcolor(new mytest());
  }
}
 //测试类 
class mytest{
  
  
  public void setmytest(){
    system.out.println("setmytest");
  }
  /**
   类的私有方法
   **/
  private void privatemethod(){
    system.out.println("调用了 private method");
  }
  
}

以上这篇利用java反射机制调用类的私有方法(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。