原创链接: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();

【转载】Java反射: 数组的更多相关文章

  1. 【译】10. Java反射——数组

    原文地址:http://tutorials.jenkov.com/java-reflection/arrays.html ======================================= ...

  2. (转载)Java反射机制

    Java反射机制是Java语言被视为准动态语言的关键性质.Java反射机制的核心就是允许在运行时通过Java Reflection APIs来取得已知名字的class类的相关信息,动态地生成此类,并调 ...

  3. Java反射----数组操作

    1,获取数组字段 在Person类中定义了一个一维数组字段:int[] a1 = new int[]{1,2,3}; 如何通过反射技术来操作该字段? 补充:Java操作数组主要用的是Array类. @ ...

  4. [转载]Java 反射机制(包括组成、结构、示例说明等内容)

    FROM:http://www.cnblogs.com/skywang12345/p/3345205.html 第1部分 Java 反射机制介绍 Java 反射机制.通俗来讲呢,就是在运行状态中,我们 ...

  5. Java 反射机制学习资料

    Java反射——引言 Java反射——Class对象 Java反射——构造函数 Java反射——字段 Java反射——方法 Java反射——Getter和Setter Java反射——私有字段和私有方 ...

  6. Java反射——引言

    Java反射——引言 原文地址:http://tutorials.jenkov.com/java-reflection/index.html *By Jakob Jenkov Java的反射机制使得它 ...

  7. 【译】1. Java反射——引言

    原文地址:http://tutorials.jenkov.com/java-reflection/index.html *By Jakob Jenkov Java的反射机制使得它可以在运行时检查类.接 ...

  8. 【译】2. Java反射——Class对象

    原文地址:http://tutorials.jenkov.com/java-reflection/classes.html ====================================== ...

  9. 【译】3. Java反射——构造函数

    原文地址:http://tutorials.jenkov.com/java-reflection/constructors.html ================================= ...

随机推荐

  1. backup, file manipulation operations (such as ALTER DATABASE ADD FILE) and encryption changes on a database must be serialized.

    昨天在检查YourSQLDba备份时,发现有台数据库做备份时出现了下面错误信息,如下所示: <Exec>   <ctx>yMaint.ShrinkLog</ctx> ...

  2. 0026 Java学习笔记-面向对象-抽象类、接口

    抽象方法与抽象类 抽象方法用abstract修饰,没有方法体部分,连花括号都不能有: 抽象方法和抽象类都用abstract修饰 包含抽象方法的类一定是抽象类:但不包含抽象方法的类也可以是抽象类 不能创 ...

  3. 使用 shell 脚本实现 LANMP 一键安装

    使用 shell 脚本来实现 LANMP 系统的一键安装.使用的操作系统是 CentOS 6 ,不区分 32 位和 64 位,要求机器可以连通互联网.支持 LAMP 和 LNMP ,MySQL 支持 ...

  4. jQuery 3.0 的 Data 浅析

    jQuery 3.0 在6月9日正式发布了,3.0 也被称为下一代的 jQuery .这个版本从14年10月开始,其中发布过一次beta 版(2016/1/14,)和候选版(2016/05/20).一 ...

  5. Linux find命令的用法实践

    一.find命令简介 Linux下find命令在目录结构中搜索文件,并执行指定的操作.Linux下find命令提供了相当多的查找条件,功能很强大.由于find具有强大的功能,所以它的选项也很多,其中大 ...

  6. 一张图看懂ANSYS17.0 流体 新功能与改进

    一张图看懂ANSYS17.0 流体 新功能与改进   提交 我的留言 加载中 已留言   一张图看懂ANSYS17.0 流体 新功能与改进 原创2016-02-03ANSYS模拟在线模拟在线 模拟在线 ...

  7. Neutron 理解 (3): Open vSwitch + GRE/VxLAN 组网 [Netruon Open vSwitch + GRE/VxLAN Virutal Network]

    学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...

  8. spring mvc 快速入门

    ---------- 转自尚学堂 高淇 --------- Spring  MVC 背景介绍 Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块.使用 Spring 可插入的 MVC ...

  9. Selenium-java-TestNg-的运行

    package com.day.www; import org.testng.annotations.AfterClass;import org.testng.annotations.AfterMet ...

  10. HTML标记语言篇--学习笔记01

    HTML标记语言篇 第1章  HTML基础 1.1 基本概念 WWW 是"World Wide Web"(全球广域网)的缩写,简称为Web,中文又称为"万维网" ...