JAVA 反射 (5):数组和泛型数组
来源:互联网 发布:lol皮肤试用软件 编辑:程序博客网 时间:2024/06/07 18:22
java.lang.Class
public native Class<?> getComponentType()返回表示数组组件类型的 Class
System.out.println(String.class.getComponentType()); 返回nullSystem.out.println(String[].class.getComponentType()); 返回java.lang.StringSystem.out.println(String[][].class.getComponentType()); 返回[Ljava.lang.String;
java.lang.reflect.GenericArrayType
Type getGenericComponentType();返回表示泛型数组组件类型的Type
public class Test { public static void main(String[] args) throws NoSuchMethodException { Class testClass = Test.class; Method method = testClass.getMethod("test", ArrayList[][].class); Type[] types = method.getGenericParameterTypes(); for (Type type : types) { if (type instanceof GenericArrayType) { System.out.println("GenericArrayType1 : " + type.toString()); GenericArrayType genericArrayType = (GenericArrayType) type; Type getype = genericArrayType.getGenericComponentType(); System.out.println("GenericArrayType2 : " + getype.toString()); if (getype instanceof GenericArrayType) { GenericArrayType genericArrayType2 = (GenericArrayType) getype; Type getype2 = genericArrayType2.getGenericComponentType(); System.out.println(getype2.toString()); if (getype2 instanceof Class) { System.out.println("Class"); } else if (getype2 instanceof ParameterizedType) { System.out.println("ParameterizedType"); } else if (getype2 instanceof GenericArrayType) { System.out.println("GenericArrayType3"); } } } else if (type instanceof ParameterizedType) { System.out.println("ParameterizedType"); } else if (type instanceof Class) { System.out.println("class"); } } } public static void test(ArrayList<String>[][] as) { }}输出结果:GenericArrayType1 : java.util.ArrayList<java.lang.String>[][]GenericArrayType2 : java.util.ArrayList<java.lang.String>[]java.util.ArrayList<java.lang.String>ParameterizedType将test方法的参数类型改为ArrayList[][] 输出结果为:class
总结:这两个方法用来一级一级脱去数组的维数,getComponentType用来处理普通类型数组
getGenericComponentType用来处理泛型数组
阅读全文
0 0
- JAVA 反射 (5):数组和泛型数组
- java反射编写泛型数组代码
- JAVA 反射创建数组和操作数组的意义
- JAVA 反射创建数组和操作数组的意义
- java数组反射
- java反射 String数组
- Java反射:数组
- Java反射八 数组
- java反射处理数组
- 通过java的反射编写泛型数组
- 【Core Java Volume 3】反射---编写泛型数组代码
- Java -- 利用反射 操作任意数组,包括对象数组 和 基本数据类型的数组
- java数组,通过反射操作数组
- java中数组的反射
- 《黑马程序员》java 数组反射
- 黑马程序员-java反射--数组的反射
- Java反射机制之数组的反射
- 反射中的Constructor和数组反射
- GIT(分布式版本控制系统)入门
- servlet深入介绍
- 编程基础的重要性(程序员之路)
- PostMan
- Android Studio最常用快捷键以及如何把快捷键放到桌面壁纸上
- JAVA 反射 (5):数组和泛型数组
- 51Nod 1083 矩阵取数问题(基础DP)
- 34个数据库常见面试题
- 线性代数 02.04 分块矩阵
- 年终总结
- redis运行后的一些警告
- 字符串展开
- Day02 --计算机基础知识 java语言基础
- Numpy 记忆点手册