反射概念
反射本质就是反着来。
反射 (Reflection) 是Java的特征之一,它允许运行中的Java程序获取自身的信息,并且可以操作类或对象的内部属性。
通俗的来讲就是:通过反射机制,可以在运行时获得程序或程序集中每一个类型的成员和成员的信息。
功能:
Java反射主要提供以下功能:
- 在运行时判断任意一个对象所属的类;
- 在运行时构造任意一个类的对象;
- 在运行时判断任意一个类所具有的成员变量和方法(通过反射甚至可以调用private方法);
- 在运行时调用任意一个对象的方法
获取class对象
为啥要获取Class对象?
因为有了class对象才能找关于类的属性,方法 , 构造方法、
Java可以将.java文件编译成.class文件,这个.calss文件中包含了原始文件中的所有的信息.class文件会被类加载器加载到虚拟机中可以通过.class文件获取原始类中的所有的信息随之产生一个Class类对象。将Person.class变成了一个Class对象了
获取一个类的Class对象的常用方式:
获取Method对象
Method[] getMethods()获取当前类或者父类的公开的所有的方法
Method[] getDeclaredMethods()获取当前类所有的方法,但是不能获取父类的方案