java 之反射 reflection源码分析

—> go to 总目录

一、Class

1.1 class定义

继承和实现

java 之反射 reflection源码分析

AnnotatedElement

注解信息
java 之反射 reflection源码分析

类的分类

  • ANNOTATION 注解
  • ENUM 枚举
  • SYNTHETIC 编译器生成的类,比如内部类

Type 接口

对象类型的定义

  • 只有一个方法 String getTypeName();
    java 之反射 reflection源码分析
  • ParameterizedType
    参数化类型,即泛型;例如:List、Map<K,V>等带有参数化的对象
  • TypeVariable
    类型变量,即泛型中的变量;例如:T、K、V等变量,可以表示任何类;在这需要强调的是,TypeVariable代表着泛型中的变量,而ParameterizedType则代表整个泛型;
  • GenericArrayType
    泛型数组类型,用来描述ParameterizedType、TypeVariable类型的数组;即List[] 、T[]等;

成员

  • 构造器的信息
  • classloader的信息
  • name信息
  • filed信息
  • method信息
  • 继承和实现的类信息

注意 getDeclaredClasses(),是返回所有声明过的,而getClasses()只是公有方法。
java 之反射 reflection源码分析

二、Member

封装了class的三种内容信息的模型。
java 之反射 reflection源码分析

AccessibleObject

负责权限控制的对象,pulic或者privte类实现和继承
java 之反射 reflection源码分析

Modifier 对权限修饰符编解码

例如
java 之反射 reflection源码分析

2.1 Fields

定义了field访问方式
java 之反射 reflection源码分析

2.2 methods

和field大同小异

2.3 Constructors

三、Array and Enum