定义
- 反射就是程序运行期间JVM通过Class类型的对象知道该类对应的属性喝方法,从而可以动态的创建一个类的对象和调用对象的方法。
- 因为jvm加载完类之后,在堆内存会产生一个Class类型的对象(一个类只有一个Class对象),这个对象就包含了完整的类的结构信息。通过这个对象可以看到类的结构,就像一面镜子反映了类的结构,所以形象地称为:反射
考点
- 反射可以干什么事情(反射具有哪些常用API)?
- 反射和普通创建哪个速度快?
反射常用方法
Class:表示正在运行的Java应用程序中的类和接口(只能创建无参构造器)
Class uclazz= Class.forName("com.hjc.POJO.User");
User user = (User) uclazz.newInstance();
Constructor:提供关于类的单个构造方法的信息以及它的访问权限
Constructor constructor = uclazz.getDeclaredConstructor(Integer.class,String.class,String.class);
user = (User) constructor.newInstance(1,"jjj","123");
Method:提供类或接口中某个方法的信息