反射
什么是反射?
就是针对任何一个类,他都可以获取这个类中的所有属性和方法,对于任何一个对象,可以调用它的任何的方法和属性,这种动态获取信息以及动态调用方法的功能就称为java语言的反射机制
反射使用的三种方法
//方法一
Class student1 = Class.forName("io.Student");
//方法二
Class student2 = Student.class;
//方法三
Student student3 = new Student();
Class class1 = student3.getClass();
具体类中的属性和方法
获取所有的公有的构造方法
Constructor[] constructors = student1.getConstructors();
所有的构造方法(包括:私有、受保护、默认、公有)
Constructor[] declared= student1.getDeclaredConstructors();
获取指定参数的公有构造方法
student1.getConstructor(参数类型或者null)
获取指定的公有public方法 (两个参数 属性名,方法参数类型)
student1.getMethod("d",null)
获取类中的所有public方法
Method[] methods = student1.getMethods();
获取类中的指定方法 任何方法
student1.getDeclaredMethod(name, parameterTypes)
获取类中的所有方法
Method[] declaredMethods = student1.getDeclaredMethods();
获取指定public属性
student1.getField(name);
获取指定属性(包括:私有、受保护、默认、公有)
student1.getDeclaredField(name)
获取所有public属性
Field[] fields = student1.getFields();
获取所有属性(包括:私有、受保护、默认、公有)
Field[] declaredFields = student1.getDeclaredFields();