定义一、能够分析类能力的程序成为反射。(核心卷一定义)
定义二、 主要是指程序可以访问,检测和修改它本身状态或行为的一种能力,并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。(网上找的定义义)
反射机制可以用来:
在运行中分析类的能力。
在运行中查看对象。
实现通用的数组操作代码
利用Method对象,这个对象很想c++中的函数指针。
一、利用反射分析类的能力
1、反射机制最重要的内容——检查类的结构
sun为我们提供了那些反射机制中的类:
java.lang.Class;
java.lang.reflect.Constructor; java.lang.reflect.Field;
java.lang.reflect.Method;
java.lang.reflect.Modifier;
在java.lang.reflect包中有三个类Field、Method、Constructor分别用于描述类的域、方法和构造器。这三个类都有一个叫做getName的方法,用于返回项目的名称。
Field类有一个getType方法,用来返回描述域所属类型的Class对象。Method和Constructor类有能够报告参数类型的方法,Method类还有一个可以报告返回类型的方法。这三个类还有一个叫做getModifiers的方法,它将返回一个整型数值,用不同的位开关描述public和static这样的修饰符使用状况。
Class类中的getField,getMethod和getConstructors方法将分别返回类提供的public域、方法和构造器数组,其中包括超累的公有成员。Class类的getDeclareField、getDeclareMethods和getDeclaredConstructors方法将分别返回类中声明的全部域、方法和构造器,其中包括私有和受保护成员,但不包括超累的成员。
一、Class类的使用
package com.slowly.reflectTest;
import java.lang.reflect.Method;
class MyFather