一。反射的概念
在运行状态过程中,对于任何一个类都能获取这个类的属性和方法,对于任意一个对象都能够调用它的任意一个属性和方法。这种在运行时动态的获取信息以及动态调用对象的方法的功能称为 Java 的反射机制。
二。执行流程
以代码为例:
package com.javabase.reflect;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
public class Demo01 {
public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException {
//1.获取一个class类对象,实际上该类被加载到java虚拟机的过程
Class p1 = Class.forName("包路径");
Method m1 = p1.getMethod("方法名");//2.获取方法
Field[] fields = p1.getFields();//3.获取所有属性
for (Field f:fields){
System.out.println(f.getName());
}
}
}
三。暴力反射
原来说的是可以访问私有属性私有方法 [苦笑]
setAccessable(true)方法,将其改为true