JAVA反射

来源:互联网 发布:手机淘宝怎样发微淘 编辑:程序博客网 时间:2024/06/14 07:55

用于描述JAVA类的这个类就是Class,是一个前面大写的C的类,这个类描述了一个普通类的所有信息,比如字段,方法,所实现的接口。也就是说这个类描述了所有类的共用的一些信息。可以用一个类名.class的方式得到这个类的一份字节码。比如说Person.class,List.class,等等。。


反射是JAVA类中的各种成分映射成相对应的JAVA类。比如说字段,就用字段类Filed,方法就用方法类Method。一个JAVA类当中的成分无非就是字段,方法,其中方法有普通方法和构造方法,还有这个类所属的包名,也就是用Package这个类来表示。

Foo f = (Foo) Proxy.newProxyInstance(Foo.class.getClassLoader(),new Class[] { Foo.class },handler);

第一个参数,Foo代表该接口的子类或者是实现过Foo接口的对象,后面是通常是接上目标类的类加载器,第二个参数是目标类的字节码,第三个参数是InvocationHandler接口的实现类的对象。


Object invoke(Object proxy, Method method, Object[] args),

这是InvocationHandler里面的唯一的一个方法,有三个参数,proxy表示代理对象,不过通常是传入目标对象使用,因为目标对象和代理对象实现了相同的接口,第二个是目标对象或者是代理对象的方法,通过这个参数经过反射可以执行目标类上的方法,第三个参数是目标对象上方法的具体参数。









0 0
原创粉丝点击