反射的基本使用
定义:
动态获取信息以及动态调用对象的方法的功能称为java语言的反射机制,
包含Class, Constructor, Field, Method等类;
语法:
-
Class是Java反射机制的基础,实例的获取有三种方法:
1) Class<?> demoClz = new Student().getClass();实例对象去获取; 2) Class clazz= Student.class;根据类去获取; 3) Class<?> forName = Class.forName(“com.test.Student”);//全类名
-
Field, Method
1)getMethod(“name”); 2)getField(“name”)只能获取public,getDeclaredFiled可获取私有属性;
-
构造方法
1)getConstructors()获取构造方法;
反射原理深入理解
类的加载机制
首先来了解类的加载机制:
参考:
https://www.cnblogs.com/ityouknow/p/5603287.html
RTTI
运行时类型识别(RTTI, Run-Time Type Identification)是Java中非常有用的机制,在Java运行时,RTTI维护类的相关信息。
多态(polymorphism)是基于RTTI实现的。RTTI的功能主要是由Class类实现的。
.class文件
参考:
https://blog.youkuaiyun.com/tyyj90/article/details/78472986
Class类
类是对象的抽象和集合,Class是对类的抽象和集合;