1.1 AnnotatedElement
表示目前正在此 VM 中运行的程序的一个已注释元素。该接口允许反射性地读取注释。由此接口中的方法返回的所有注释都是不可变并且可序列化的。
1.2 AccessibleObject
在反射时,控制类中属性的访问权限。默认反射是不能访问类的私有方法,但是可以使用AccessibleObject.setAccessible(fields, true); 指定访问权限以访问类的私有属性
1.3 GenericDeclaration
声明类型变量的所有实体的公共接口,也就是说,只有实现了该接口才能在对应的实体上声明类型变量。(个人理解 Array
<
String
>
String就是类型变量) 也就是只有实现了这个接口,才能实现泛型。
http://www.cnblogs.com/baiqiantao/p/7475696.html
1.4 Member
可以通过反射获取变量、方法、构造的信息
1.5 Field
封装了公有、私有、静态、实例变量的操作
1.6 Method
封装了公有、私有、静态、实例方法的操作
1.7 Parameter
提供关于方法参数的信息
1.8 Class
类的实例是对象,Class的实例是类或接口,Class类没有公有的构造方法,它由JVM自动调用
1.9 Type类型
它是所有类型的公共接口。包括原始类型、参数化类型、数组类型、类型变量和基本类型。它有四个子类:ParameterizedType, TypeVariable, WildcardType,GenericArrayType。
2、Type类型
2.1 ParameterizedType
参数化类型,形如:Object
主要方法:
//1.获得<>中实际类型 如T,K
Type[] getActualTypeArguments();
//2.获得<>前面实际类型 如Obect
Type getRawType();
//3.如果这个类型是某个类型所属,获得这个所有者类型,否则返回null
Type getOwnerType();
2.2 TypeVariable
类型变量,如参数化类型中的E、K等类型变量,表示泛指任何类,如果加上extends/super限定,则就会有相应的上限、下限。
主要方法:
//如:class A<X extends C>
//获得泛型的上限,若未明确声明上边界则默认为Object。这里是C
Type[] getBounds();
//获取声明该类型变量实体(即获得类、方法或构造器名)。类名A
D getGenericDeclaration();
//获得名称,即K、V、E之类名称。这里是X
String getName();
2.3 GenericArrayType
泛型数组,描述的是ParameterizedType类型以及TypeVariable类型数组,即形如:classA[][]、T[]等
//获得这个数组元素类型,即获得:A<T>[]返回A<T>或T[]返回T
Type getGenericComponentType();
2.4 WildcardType
通配符表达式,或泛型表达式,它虽然是Type的一个子接口,但并不是Java类型中的一种,表示的仅仅是类似 ? extends T、? super K这样的通配符表达式。
//获得泛型表达式上界(上限)
Type[] getUpperBounds();
//获得泛型表达式下界(下限)
Type[] getLowerBounds();
3、Java类型分类
Java的所有类型包括:
- raw type:原始类型,对应Class 指平常所指的类,还包括数组、接口、注解、枚举等结构。
- parameterized types:参数化类型,对应ParameterizedType
- array types:数组类型,对应GenericArrayType
- type variables:类型变量,对应TypeVariable
- primitive types:基本类型,仍然对应Class
1). 3中的数组类型GenericArrayType,应该指的是2、4类型数组,而不是一般我们说的数组,我们一般所说的数组是指1、5类型数组,他们还是1,也就是Class类型。
2). List
<
T ? entends>[]:这里的List就是ParameterizedType,T就是TypeVariable,T ? entends就是WildcardType(注意,WildcardType不是Java类型,而是一个表达式),整个List
<
T ? entends>[]就是GenericArrayType。
参考:
http://blog.youkuaiyun.com/a327369238/article/details/52621043
http://blog.youkuaiyun.com/u012422440/article/details/48948921
2439

被折叠的 条评论
为什么被折叠?



