1、反射概述
- 反射是指对于任何一个Class类,在"运行的时候"都可以直接得到这个类全部成分。
- 在运行时,可以直接得到这个类的构造器对象:Constructor
- 在运行时。可以直接得到这个类的成员变量对象:Field
- 在运行时,可以直接得到这个类的成员方法对象:Method
- 这种运行时动态获取类信息以及动态调用类中成分的能力称为Java语言的反射机制
2、反射的关键:
- 反射的第一步都是先得到编译后的Class类对象,然后就可以得到Class的全部成分。
- HelloWorld.java -> javac -> HelloWorld.class
- Class c = HelloWorld.class
3、反射的基本作用、关键?
- 反射是在运行时获取类的 字节码文件对象 :然后可以解析类中的全部成分。
- 反射的核心思想和关键就是:得到编译以后的class文件对象。
4、反射获取类对象
5、反射的第一步是什么?
- 获取Class类对象,如此才可以解析类的全部成分
6、获取Class类的对象的三种方式
- 方式一:Class c1 = Class.forName(”全类名“)
- 方式二:Class c2 = 类名.class
- 方式三:Class c3 = 对象.getClass()
package com.csdn.reflect_class; /** * 目标:反射的第一步:获取Class对象 */ public class ReflectObject{ public static void main(String[] args) throws ClassNotFoundException { //1、Class类中的一个静态方法:forName(全限定:包名加类名) Class c = Class.forName("com.csdn.reflect_class.ReflectObject"); System.out.println(c);//class com.csdn.reflect_class.ReflectObject //2、类名.class Class c1 = ReflectObject.class; System.out.println(c1);//class com.csdn.reflect_class.ReflectObject //3、对象.getClass()获取对象对应类的Class对象 ReflectObject ro = new ReflectObject(); Class c2 = ro.getClass(); System.out.println(c2);//class com.csdn.reflect_class.ReflectObject } }