int[] i1 = new int[]{1,2,3}; int[] i2 = new int[4]; int[][] i3 = new int[3][5]; String[] strArr = new String[]{"a","b","c"}; //对于相同的类型 并且都是一位数组 那么他们的类的字节码是相等的 System.out.println(i1.getClass() == i2.getClass());//true //System.out.println(i1.getClass() == i3.getClass());//false //[I 代表是一个数组 类型是Int的 System.out.println(i1.getClass().getName());//[I //获取父类的 System.out.println(i1.getClass().getSuperclass().getName());//java.lang.Object System.out.println(strArr.getClass().getSuperclass().getName());//java.lang.Object Object obj1 = i1; Object obj2 = i2; Object obj3 = i3; //这种编译不过去 因为i1 是一个int数组 基本数据类型不是Object 所以不对 //Object[] obj4 = i1; //这种是因为i3是一个二维数组 相当于i3数组里 有一个int[]数组 int[]是Obejct 所以可以 Object[] obj5 = i3; //这种是因为strArr是一个String的数组 String是Object 所以可以 Object[] obj6 = strArr; //直接打印数组 System.out.println(i1);//I@14318bb System.out.println(strArr);//[Ljava.lang.String;@ca0b6 //吧数组转换成List集合对象 System.out.println(Arrays.asList(i1));//[[I@14318bb] System.out.println(Arrays.asList(strArr));//[a, b, c]
//为什么i1不行呢???不能在这转成一个List把结果输出呢???
//jdk1.5的 参数是一个可变的 当成一个Object 问不是一个数组
//public static <T> List<T> asList(T... a)
//jdk1.4的 参数是一个Object数组 当成一个Object数组
//public static <T> List<T> asList(Object[] obj)
//看这两个方法的参数就明白了
//刚刚上面还说i1数组是int类型 基本数据类型int不是Object 所以就不能转换成一个List
//而strArr数组是一个String类型 String是Object 所以可以
相关推荐
总结来说,Java反射提供了对数组的动态操作能力,包括创建数组、设置和获取数组元素、以及处理类中声明的数组字段。这种能力使得代码更加灵活,但也增加了潜在的错误风险,因此在使用时应谨慎并充分测试。
1. 数组与Object的关系及其反射类型: 在Java中,所有数组都继承自Object类,这意味着数组对象可以调用Object类的方法,如equals()和toString()。通过反射,我们可以获取数组的类信息,包括元素类型、长度等。Class...
总结来说,Java反射机制提供了强大的动态类型功能,让我们能够在运行时检查类的信息,创建对象,调用方法,访问属性,以及操作数组。这种能力在很多场合都非常有用,如插件系统、代码生成、测试工具等。但同时,反射...
### Java反射机制详解 #### 一、反射机制是什么 反射机制是Java编程语言的一个核心特性,它允许程序在运行时动态地获取类的信息,并且能够动态地创建对象和调用对象的方法。简单来说,反射机制使得Java程序可以...
在 Java 反射机制中,我们可以通过 Method 对象的 invoke 方法来执行某对象的方法,这个方法的返回值是 Object 类型的,可以是基本类型、数组、集合等各种类型。 Java 反射机制提供了一种动态获取类信息和执行对象...
Java反射机制是Java编程语言中一个强大的特性,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。这个特性使得Java具有了高度的灵活性和动态性,尤其是在处理元数据、创建对象、调用方法以及...
Java反射机制是Java编程语言中的一个重要特性,它允许程序在运行时动态地获取类的信息并进行操作。通过反射,开发者可以在程序执行时发现并访问类的字段(fields)、方法(methods)以及构造器(constructors),...
### Java反射机制应用详解 #### 一、Java反射机制简介 Java反射机制是Java语言提供的一种能在运行时分析类信息并动态操作对象的功能。通过反射,我们可以在程序运行期间获取类的信息(如类名、方法名等),创建...
Java 中的反射机制(含数组参数) Java 中的反射机制是一种强大的工具,可以在运行时获取类的内部信息,包括modifiers、superclass、interfaces、fields 和 methods 的所有信息,并可以在运行时改变 fields 的内容...
### Java反射机制与动态代理详解 #### 一、Java反射机制概述 Java反射机制是一种强大的功能,它使得程序能够在运行时动态地获取类的信息并进行操作。反射是Java语言的一个重要特性,也是Java被视为动态语言的关键...
总结来说,Java反射机制是Java语言的一个重要特性,它使得程序能够在运行时动态地获取类的信息并进行操作,提高了代码的通用性和适应性。在实际开发中,反射机制常用于框架设计、插件系统、数据持久化等领域,但同时...
### Java反射机制简介 #### 一、什么是Java反射机制? Java反射机制是Java语言提供的一种在运行时访问类和对象信息的能力。通过反射,我们可以在程序运行时动态地获取类的信息(如类名、方法、构造函数等)并操作...
#### 一、Java反射机制概述 Java反射机制是Java语言提供的一种能在运行时分析和操作类、对象、方法等的能力。它使得开发人员可以在程序运行过程中动态地获取类的信息(例如类名、字段、方法等),并且能够动态地...
### JAVA反射机制详解 #### 一、Java反射机制概述 ...通过上述两个示例程序可以看出,Java反射机制不仅能够帮助我们了解一个类的内部结构,还能够实现对象的动态创建与属性设置等功能,极大地扩展了Java编程的可能性。
Java反射机制是Java语言提供的一种强大的工具,它允许程序在运行时动态地访问和修改类的行为。这种机制的核心在于能够获取类的元数据信息,并基于这些信息实例化对象、调用方法、访问和修改字段的值,从而实现高度的...
Java反射机制是Java语言的一项重要特性,它允许程序在运行时动态地获取类的信息并进行操作。这使得Java具备了高度的灵活性和可扩展性,能够处理编译时未知的类,增强了代码的动态性。 首先,Java反射机制的核心在于...