java中class,method,field的继承体系

java中所有对象的类型定义类Type

说明:
Type : Type is the common superinterface for all types in the Java programming language. These include raw types, parameterized types, array types, type variables and primitive types.
使用
一般我们不直接操作Type类型,所以第一次使用会对这个比较陌生,相对内部的一些概念。
根据Type类型分类,整理了一个type -> class的转换过程,同理也包括处理Generic Type。支持多级泛型处理。
Java代码
- private static Class getClass(Type type, int i) {
- if (type instanceof ParameterizedType) { // 处理泛型类型
- return getGenericClass((ParameterizedType) type, i);
- } else if (type instanceof TypeVariable) {
- return (Class) getClass(((TypeVariable) type).getBounds()[0], 0); // 处理泛型擦拭对象
- } else {// class本身也是type,强制转型
- return (Class) type;
- }
- }
- private static Class getGenericClass(ParameterizedType parameterizedType, int i) {
- Object genericClass = parameterizedType.getActualTypeArguments()[i];
- if (genericClass instanceof ParameterizedType) { // 处理多级泛型
- return (Class) ((ParameterizedType) genericClass).getRawType();
- } else if (genericClass instanceof GenericArrayType) { // 处理数组泛型
- return (Class) ((GenericArrayType) genericClass).getGenericComponentType();
- } else if (genericClass instanceof TypeVariable) { // 处理泛型擦拭对象
- return (Class) getClass(((TypeVariable) genericClass).getBounds()[0], 0);
- } else {
- return (Class) genericClass;
- }
- }
本文详细介绍了Java中Type类型的使用及转换过程,包括如何处理泛型类型、泛型擦除对象及多级泛型等复杂情况。通过具体的Java代码示例,帮助读者理解并掌握Type类型的实际应用。
938

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



