跟王老师学反射:使用反射操作数组
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了跟王老师学反射:使用反射操作数组相关的知识,希望对你有一定的参考价值。
跟王老师学反射(八):使用反射操作数组主讲教师:王少华 QQ群号:483773664
学习内容
使用反射操作数组
在java.lang.reflect包下还提供了一个Array类,Array对象可以代表所有的数组。程序可以通过使用Array来动态创建数组。
一、传统的创建数组的方法
1 2 3 4 5 6 7 8 | public static void main(String[] args) { int vec[] = new int []{ 1 , 5 , 3 }; // 第一种方法 int vec[] = { 37 , 47 , 23 } ; // 第二种方法 int vec[] = new int [ 3 ]; for ( int i= 0 ;i< 3 ;i++) vec[i]=i+ 1 ; //第三种方法 } |
二、Array提供的方法
(一)、public static Object newInstance(Class<?> componentType, int length)
创建一个具有指定的元素类型、指定维度的新数组
(二)public static Xxx getXxx(Object array, int index)
返回array数组中第index个元素,其中xxx是各种基本数据类型。如果数组元素是引用类型,则该方法变为get(Object array,int index)
(三)public static void setXxx(Object array, int index, Object value)
将array数组中第index元素的值设为val.其中xxx是各种基本数据类型。如果数组元素是引用类型,则该方法变为set(Object array,int index,Object val)
二、演示
(一)利用Array操作一组数组
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | public class ArrayTest1 { public static void main(String[] args) { try { //创建一个元素类型为String ,长度为10的数组 Object arr = Array.newInstance(String. class , 10 ); //依次向arr数组中index = 5,6的元素赋值 Array.set(arr, 5 , "zhangsan" ); Array.set(arr, 6 , "leisi" ); //依次取出arr数组中index=5、6的元素值,并打印输出 System.out.println(Array.get(arr, 5 )); System.out.println(Array.get(arr, 6 )); } catch (Exception e) { e.printStackTrace(); } } } |
(二)利用Array类操作二维数组
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | public class ArrayTest2 { public static void main(String[] args) { /** * 创建一个二维数组 * 二维数组,可以理解二个一维数组 */ Object array = Array.newInstance(String. class , 3 , 4 ); //获取array数组中的index为2的元素,这是一个一维数组 Object arr = Array.get(array, 2 ); //为arr赋值 Array.set(arr, 0 , "zhangsan" ); Array.set(arr, 1 , "lisi" ); Array.set(arr, 2 , "wangwu" ); Array.set(arr, 3 , "zhaoliu" ); //取值 System.out.println(Array.get(arr, 2 )); } } |
以上是关于跟王老师学反射:使用反射操作数组的主要内容,如果未能解决你的问题,请参考以下文章