原创链接:http://czj4451.iteye.com/blog/1479486

java.lang.reflect.Array

Java反射机制通过Array类来处理数组,结合java.lang.Class类,可以在运行时获取数组的相关信息。要和集合包中的java.util.Arrays区分开,Arrays类是一个数组工具类(排序、遍历数组,将数组转换为集合等)。

实例化数组

如果在编译时知道数组的类型(如int类型),使用new关键字实例化

  1. float[] array = new float[3];

也可以使用反射:

  1. float[] array = Array.newInstance(float.class, 3);

和new关键字类似,这个例子也创建了一个float类型的数组。

如果是运行时才知道类型,使用下面的方法:

  1. Object array = Array.newInstance(componentType, length);

Array.newInstance()的第一个参数表示要创建什么类型的数组,第二个参数表示数组的大小。

访问数组

创建数组后,可以通过Array.set()和Array.get()来设置和获取数组中的元素:

  1. float[] array = (float[]) Array.newInstance(float.class, 3);
  2. Array.set(array, 0, 16.0f);
  3. Array.set(array, 1, 12.4f);
  4. Array.set(array, 2, 16.4f);
  5. System.out.format("array[0]=%f\n", Array.get(array, 0));
  6. System.out.format("array[1]=%f\n", Array.get(array, 1));
  7. System.out.format("array[2]=%f\n", Array.get(array, 2));

输出: 
array[0]=16.000000 
array[1]=12.400000 
array[2]=16.400000

判断传入的对象是不是数组

  1. // obj is the instance passed in running time
  2. boolean bArray = obj.getClass().isArray();

拿到数组的长度

  1. // obj is the instance passed in running time
  2. int length = java.lang.reflect.Array.getLength(obj);

判断数组元素的类型

      1. // obj is the instance passed in running time
      2. Class elementType = obj.getClass().getComponentType();

最新文章

  1. 浏览器中用JavaScript获取剪切板中的文件
  2. 第3月30天 UIImage imageWithContentsOfFile卡顿 Can't add self as subview MPMoviePlayerControlle rcrash
  3. OpenGL实现3D漫游的理解
  4. shudupoj2676
  5. js设置本周 本月 本年
  6. jQuery 特效:盒子破碎和移动动画效果
  7. iOS Xcode个人常用插件
  8. Tomcat下安装solr6.x
  9. .net使用FluentValidation进行服务端验证。
  10. 使用sysbench进行压力测试
  11. Eclipse发布地址不同引发的问题
  12. eclipse--解决Android模拟器端口被占用问题的办法
  13. [转] linux下的c/c++调试器gdb
  14. javascript获取对象宽度和高度
  15. Pawn Brotherhood
  16. ROS(indigo) 用于机器人控制的图形化编程工具--code_it robot_blockly
  17. Altium Designer 使用中的小技巧1
  18. Biopython 安装使用
  19. 【COCOS2DX-游戏开发之三一】之 坐标系(下) convertToNodeSpace和convertToWorldSpace
  20. flask 定义数据库关系(多对多)

热门文章

  1. 使用 Eclipse 玩转 C、C++
  2. WINDOWS登录系统之前(欢迎界面)运行指定程序脚本服务
  3. shell实现SSH自动登陆
  4. MySQL Nested-Loop Join算法学习
  5. 关于linux中的时间 时区问题
  6. WPF系列 自定控件
  7. Vc6.0头文件的定义
  8. Hibernate入门案例及增删改查
  9. hibernate概述
  10. MySQL的基本知识 -- 函数