Java反射基本概念解读
一、Java中Class类(public final class Class<t>{}) 类 类型和我们自定义的类(比如:public class Student{})的关系
答:比如我们自定义了三个类:public class Person{},public class Student{},public class Teacher{}。这三个类的定义,就是Class类的对象。而Class类是这三个类定义的类型。
二、通过反射的方式获取类定义对象(也就是Class类的对象)的方式有三种:
1、Class a = Class.forName("cn.jbit.Student");// 1、获取类定义的第一种方式
2、Class b = new Student().getClass();// 2、获得类定义的第二种方式
3、Class c = Student.class;// 3、获取类定义的第三种方式
说明:a、b、c这三个对象,表示类的定义,并不是Student类的对象。
三、Class对象常用的方法之一——获取类中的字段(Field对象)
1、getFields():获得类定义对象中所有public的字段定义对象Field数组(包括父类中的public,但是protected不包括,自己类的private和protected也不包括);
2、getDeclaredFields():获得类定义对象中自己的字段(private、protected、public都包括)数组,但是父类中的字段,不管什么访问修饰符,都不包括;
3、getFields(String name):根据指定的名称获取Field对象,包括的范围同上;
4、getDeclaredFields(String name):根据指定的名称获取Field对象,包括的范围同上;
四、Class对象常用的方法之二——获取类中的方法(Method对象)