1.反射机制是什么
反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;
这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
3.反射应该怎么用
3.1首先要先获取到一个类的基类
object.getClass()
每个对象都有此方法
获取指定实例对象的Class
List list = new ArrayList();
Class listClass = list.getClass();
class. getSuperclass()
获取当前Class的继承类Class
List list = new ArrayList();
Class listClass = list.getClass();
Class superClass = listClass. getSuperclass();
Object.class
.class直接获取
Class listClass = ArrayList.class;
Class.forName(类名)
用Class的静态方法,传入类的全称即可
try {
Class c = Class.forName("java.util.ArrayList");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
Primitive.TYPE
基本数据类型的封装类获取Class的方式
Class longClass = Long.TYPE;
Class integerClass = Integer.TYPE;
Class voidClass = Void.TYPE;
3.2 java反射为我们提供了四大对象用来访问java类中的属性方法构造和动态创建数组
Field 类:代表类的成员变量(也称类的属性) Method类:代表类的方法 Constructor 类:代表类的构造方法 Array类:提供了动态创建数组,以及访问数组的元素的静态方法
3.2.1FieId类
public Field getDeclaredField(String name) 获取任意指定名字的成员
public Field[] getDeclaredFields() 获取所有的成员变量
public Field getField(String name) 获取任意public成员变量
public Field[] getFields() 获取所有的public成员变量
3.2.2Method类
public Method[] getMethods() 获取所有的共有方法的集合
public Method getMethod(String name,Class<?>... parameterTypes) 获取指定公有方法 参数1:方法名 参数2:参数类型集合
public Method[] getDeclaredMethods() 获取所有的方法
public Method getDeclaredMethod(String name,Class<?>... parameterTypes) 获取任意指定方法
转载于:https://www.cnblogs.com/wy0119/p/7653365.html
相关资源:数据结构—成绩单生成器