【转载】Java反射: 数组
原创链接:http://czj4451.iteye.com/blog/1479486
java.lang.reflect.Array
Java反射机制通过Array类来处理数组,结合java.lang.Class类,可以在运行时获取数组的相关信息。要和集合包中的java.util.Arrays区分开,Arrays类是一个数组工具类(排序、遍历数组,将数组转换为集合等)。
实例化数组
如果在编译时知道数组的类型(如int类型),使用new关键字实例化
- float[] array = new float[3];
也可以使用反射:
- float[] array = Array.newInstance(float.class, 3);
和new关键字类似,这个例子也创建了一个float类型的数组。
如果是运行时才知道类型,使用下面的方法:
- Object array = Array.newInstance(componentType, length);
Array.newInstance()的第一个参数表示要创建什么类型的数组,第二个参数表示数组的大小。
访问数组
创建数组后,可以通过Array.set()和Array.get()来设置和获取数组中的元素:
- float[] array = (float[]) Array.newInstance(float.class, 3);
- Array.set(array, 0, 16.0f);
- Array.set(array, 1, 12.4f);
- Array.set(array, 2, 16.4f);
- System.out.format("array[0]=%f\n", Array.get(array, 0));
- System.out.format("array[1]=%f\n", Array.get(array, 1));
- System.out.format("array[2]=%f\n", Array.get(array, 2));
输出:
array[0]=16.000000
array[1]=12.400000
array[2]=16.400000
判断传入的对象是不是数组
- // obj is the instance passed in running time
- boolean bArray = obj.getClass().isArray();
拿到数组的长度
- // obj is the instance passed in running time
- int length = java.lang.reflect.Array.getLength(obj);
判断数组元素的类型
- // obj is the instance passed in running time
- Class elementType = obj.getClass().getComponentType();
【转载】Java反射: 数组的更多相关文章
- 【译】10. Java反射——数组
原文地址:http://tutorials.jenkov.com/java-reflection/arrays.html ======================================= ...
- (转载)Java反射机制
Java反射机制是Java语言被视为准动态语言的关键性质.Java反射机制的核心就是允许在运行时通过Java Reflection APIs来取得已知名字的class类的相关信息,动态地生成此类,并调 ...
- Java反射----数组操作
1,获取数组字段 在Person类中定义了一个一维数组字段:int[] a1 = new int[]{1,2,3}; 如何通过反射技术来操作该字段? 补充:Java操作数组主要用的是Array类. @ ...
- [转载]Java 反射机制(包括组成、结构、示例说明等内容)
FROM:http://www.cnblogs.com/skywang12345/p/3345205.html 第1部分 Java 反射机制介绍 Java 反射机制.通俗来讲呢,就是在运行状态中,我们 ...
- Java 反射机制学习资料
Java反射——引言 Java反射——Class对象 Java反射——构造函数 Java反射——字段 Java反射——方法 Java反射——Getter和Setter Java反射——私有字段和私有方 ...
- Java反射——引言
Java反射——引言 原文地址:http://tutorials.jenkov.com/java-reflection/index.html *By Jakob Jenkov Java的反射机制使得它 ...
- 【译】1. Java反射——引言
原文地址:http://tutorials.jenkov.com/java-reflection/index.html *By Jakob Jenkov Java的反射机制使得它可以在运行时检查类.接 ...
- 【译】2. Java反射——Class对象
原文地址:http://tutorials.jenkov.com/java-reflection/classes.html ====================================== ...
- 【译】3. Java反射——构造函数
原文地址:http://tutorials.jenkov.com/java-reflection/constructors.html ================================= ...
随机推荐
- Python基础算法综合:加减乘除四则运算方法
#!usr/bin/env python# -*- coding:utf-8 -*-#python的算法加减乘除用符号:+,-,*,/来表示#以下全是python2.x写法,3.x以上请在python ...
- Resize Instance 操作详解 - 每天5分钟玩转 OpenStack(41)
Resize 的作用是调整 instance 的 vCPU.内存和磁盘资源. Instance 需要多少资源是定义在 flavor 中的,resize 操作是通过为 instance 选择新的 fla ...
- 客户端连接RMS服务,报:服务暂时不可用,请确保已连接到此服务器…….
原因在于客户端office没有安装rms服务模块,或安装的office有缺陷,请重新安装可用的office版本.
- 关于 Java 中 finally 语句块的深度辨析
应该有很多人对java的finally 理解的不是很透彻吧,这里有篇文章讲的非常深入.猛击下面链接.面试时经常问到这问题 http://www.ibm.com/developerworks/cn/ja ...
- WPF Tranform-Flip Image
Use a ScaleTransform with a ScaleX of -1 for horizontal and ScaleY of -1 for vertical flipping, appl ...
- CI连接多个数据库
参考http://codeigniter.org.cn/user_guide/database/connecting.html手册 首先,在database.php中设置多个数据库的连接信息,这里命名 ...
- [转]ASP.NET Core 中间件详解及项目实战
本文转自:http://www.cnblogs.com/savorboard/p/5586229.html 前言 在上篇文章主要介绍了DotNetCore项目状况,本篇文章是我们在开发自己的项目中实际 ...
- [转]NET Core中实现一个Token base的身份认证
本文转自:http://www.cnblogs.com/Leo_wl/p/6077203.html 注:本文提到的代码示例下载地址> How to achieve a bearer token ...
- 程序员的修养 -- 如何写日志(logging)
在程序中写日志是一件非常重要,但是很容易被开发人员忽视的地方.写好程序的日志可以帮助我们大大减轻后期维护压力. 在实际的工作中,开发人员往往迫于的巨大时间压力,而写日志又是一个非常繁琐的事情,往往 ...
- 【转载】Serif和Sans-serif字体的区别
在西方国家罗马字母阵营中,字体分为两大种类:Sans Serif和Serif,打字机体虽然也属于Sans Serif,但由于是等宽字体,所以另外独立出Monospace这一种类,例如在Web中,表示代 ...