- 反射概念:
反射机制是在【运行状态】中:
对于任意一个类,都能够知道这个类的所有属性和方法;
对于任意一个对象,都能够调用它的任意一个方法和属性;
- 可这样理解:只要用到java.lang.Class类/对象,就都用到了反射的概念。
- 应用场合:
如果编写程序时,我们知道我们想要使用哪个类,只需要用这个类去创建对象,然后再调用该对象里面的数据和方法即可。
反射 即 反过来 ↓
但如果我们不知道我们要使用哪个类,这个时候,我们需要用到【反射】来获取到类的信息,以及里面有好像哪些成员,再使用。(不知道使用谁 → 获取类信息 → 使用(实例化对象,调用属性和方法))
- 反射提供的功能:
在运行时判断任意一个对象所属的类;
在运行时构造任意一个类的对象;
在运行时判断任意一个类所具有的成员变量和方法;
在运行时调用任意一个对象的方法;
生成动态代理;
- 获取反射Class对象(反射入口):
有3种方法: 即下列三种方法的返回值均为Class
a.Class.forName("全类名")
b.类名.class
c.对象.getClass()方法(方法摘要:返回此Object的运行时类)
注:因为getClass()方法是 公共基类Object类 里的方法,所以每个对象都可以直接调用getClass()方法