数组的反射

数组他不是基本类型,他的父类是Object类。 可以用如下例子来验证:

int[] a = new int[] {};

System.out.println(a.getClass().getSuperclass());     // 打印出的结果是Object

 

一维数组不管他的数组长度是否相等,他们字节码是相同的。

例如:

int[] a = new int[] {1, 2, 3};

int[] b = new int[] {4, 5, 6, 7};

System.out.println(a.getClass() == b.getClass())        // 打印出true

 

在对数组进行反射时,经常用到两个类:Arrays和Array

Arrays提供了用来操作各种方法

1、 public static <T> List <T> asList (T... a)       //返回数组的列表

2、对各种类型数组的搜索和排序方法

     1、public static void sort (int[] a)                    对int类型的数组,a为要排序的数组

     2、public static void sort (Object [] a)              对一个对象数组排序,a为要排序的数组

Array 类提供了动态创建和访问 Java 数组的方法:

1、 public static int getLength (Object  array)            返回数组对象的长度

2、public static void set (Object  array, int index, Object  value)        设置数组对象中的指定位置的值

3、 public static int getInt (Object  array, int index)               以类型的形式获得对象数组的指定位置值

4、public static void setInt (Object  array, int index, int i)     在数组对象中的指定位置的设置int类型的值

5、public static Object newInstance (Class <?> componentType, int length)    动态的创建数组

 

newInstance方法的用法如下:

1、创建数组

      Object obj = Array.newInstance(int.class, 4);              //创建一个int类型的长度为4的数组

2、为数组赋值,使用Array.set(Object array, int index, Object value) 方法

     Array.set(obj, 0, 1);             //为下标为零的位置赋值1

这就是动态创建数组

 


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值