接着上一篇动态代理,这篇继续来分析动态代理中用到的反射机制。首先依旧从问题入手。
1.什么是反射机制?
2.为什么要用反射机制?
3.怎么用反射机制来实现我们想要实现的功能?
一.好的首先来分析第一个问题,就是什么是反射机制:我们知道要让一个Java程序能够运行,就得让Java类被Java虚拟机加载。Java类如果不被Java虚拟机加载就不能正常运行。正常情况下,我们运行的所有的程序在编译期时候就已经把那个类被加载了。Java的反射机制是在编译时并不确定是哪个类被加载了,而是在程序运行的时候才加载、探知、自审。使用的是在编译期并不知道的类。这样的编译特点就是java反射。用一句话来说反射就是加载一个在运行时才知道的类和它的内部结构。
二.接着我们来看为什么要用到反射机制:从上我们可以知道反射的概念,可以知道它的作用是可以再运行状态的时候对任何一个类都能知道他的内部结构,任意一个对象都能调用他的属性和方法,这就是一种动态的获取和动态的调用。这样说可能有点抽象,最常见的我觉得就像eclipse,VS中的自动代码提示,(eclipse中的Alt+/),他就是用反射机制来知道的当前对象的属性和方法。
三.具体的实现: