什么是java反射?:
JAVA反射机制是在运行状态中,通过ClassLoad加载类到JVM(动态加载机制、懒加载)的同时通过JDK中已经定义好的Class类(字节码文件对象)能够知道、操作这个类的所有属性、方法;Class文件对象的newInstance方法可以对某个类进行实例化生成对象,也能够获取它的任意方法和属性信息;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。
Class c = Class.forName("User");//Loader进具体的类
Method[] m = c.getMethods();//获取这个类的所有方法
Field[] f = c.getFields();//获取这个类的属性
Object o = c.newInstance();//实例化成对象
for(Method method : m){
if (method.getName().equals("m")){
method.invoke(o);//现在遍历的是方法想要调用方法需要一个对象
}
}
Class类中方法返回值类型也是其他系统类的对象!
类名 | 作用 |
---|---|
Class 类 | 代表类的实体,在运行的Java应用程序中表示类和接口 |
Field类 | 代表类的成员变量(成员变量也称为类的属性) |
Method类 | 代表类的方法 |
Constructor类 | 代表类的构造方法 |