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   = 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对象)

原文地址:https://www.cnblogs.com/qq1186139850/p/13454092.html