数组与Object的关系及其反射类型
2014-09-24 08:53
344 查看
数组与Object的关系及其反射类型。
具有相同类型和同一维数的数组属于同一类型,即具有相同的Class实例对象。int[]的父类型 是Object,基本数据类型的一维数组可以当作Object来使用,不能当作Object[]来使用,非基本数据类型的一维数组可以当作 Object来使用,也可以当作 Object[]来使用。int[] a2=new int[4]; int[][] a3=new int[2][3]; String[] a4=new String[]{"a","b","c"}; System.out.println(a1.getClass() == a2.getClass());//true // System.out.println(a1.getClass() == a3.getClass()); //得到int[]的父类类型。 System.out.println(a1.getClass().getSuperclass().getName());//Object System.out.println(a3.getClass().getSuperclass().getName());//Object Object aObj1=a1; Object aObj2=a3; Object aObj3=a4; // Object[] aObj4=a1;编译不通过。 Object[] aObj5=a3; Object[] aObj6=a4; // Arrays.asList()方法处理int[]和String[]的区别: System.out.println(Arrays.asList(a1));//[[I@61de33],jdk1.4的语法,封包. System.out.println(Arrays.asList(a4));//[a, b, c],jdk1.5的语法,可变参数.</span>
//数组的反射应用。
//需求:定义一个打印对象的方法。
<span style="font-size:18px;">private static void printObject(Object obj) { /* * Array 类提供了动态创建和访问 Java 数组的方法。 Array 允许在执行 get 或 set 操作期间进行扩展转换,但如果发生收缩转换, 则抛出 IllegalArgumentException。 */ Class clazz=obj.getClass(); if(clazz.isArray()){ int len= Array.getLength(obj); for(int i =0;i<len;i++){ System.out.println(Array.get(obj, i)); } }else{ System.out.println(obj); } }
相关文章推荐
- 数组与Object的关系及其反射类型
- 数组与Object的关系及其反射类型
- 23对接收数组参数的成员方法进行反射24 数组与Object的关系及其反射类型25 数组的反射应用
- 数组与Object的关系及其反射类型(浅试)
- 数组与Object的关系及其反射类型,数组反射应用实例,通过Array类实现数组的反射
- 数组与Object的关系及其反射类型
- 通过反射得到object[]数组的类型并且的到此类型所有的字段及字段的值
- SCA中组件类型、元素类型及其模型对象(ModelObject)的关系
- Java反射之method,数组与Object关系,泛型参数
- 反射取含数组的构造函数时的参数类型传递 推荐
- Asp.net AJAX JavaScript 基本类型扩展(6)——Object 类型及其扩展
- C#中将Object数组转换为String(或者其他类型)的数组(集合)
- 数组反射,判断Class 对象是否为数组及类型。将任意类型数组的大小加倍
- 黑马程序员--03.反射--06【数组的数据类型】【数组数据类型的父类】
- 把传过来的Object对象转换成Collection类型的对象。isArray()方法,判定此Class对象是否表示一个数组类。java.lang.reflect.Array 对任意数组进行操作
- java中Object数组不能直接转为对应类型的类数组
- 数组与指针类型的关系
- vb 使用Array.ConvertAll将object类型数组转为string类型数组
- 对于数组与Object的一些关系
- C#项目的.settings文件中的自定义类型(及其数组)的配置步骤