JAVA反射机制 数组与Object的关系及其反射类型

      

        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  所以可以
       

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值