Java 反射 Array动态创建数组
Java 反射 Array动态创建数组
@author ixenos
注:java.lang.reflect.Array 是个反射工具包,全是静态方法,创建数组以多维数组为基准,一维数组只是特殊实现
创建一个具有指定的组件类型和长度的新数组(一维数组)
newInstance
public static Object newInstance(Class<?> componentType,
int length)
throws NegativeArraySizeException
- 创建一个具有指定的组件类型和长度的新数组。调用此方法等效于创建如下数组:
-
int[] x = {length}; //创建数组以多维数组为基准,一维数组只是特殊实现
Array.newInstance(componentType, x); -
- 参数:
componentType
- 表示新数组的组件类型的Class
对象length
- 新数组的长度- 返回:
- 新数组
- 抛出:
NullPointerException
- 如果指定的componentType
参数为 nullIllegalArgumentException
- 如果 componentType 为Void.TYPE
NegativeArraySizeException
- 如果指定的length
为负
创建一个具有指定的组件类型和维度的新数组(多维数组)
newInstance
public static Object newInstance(Class<?> componentType,
int... dimensions)
throws IllegalArgumentException,
NegativeArraySizeException
- 创建一个具有指定的组件类型和维度的新数组。
- 如果
componentType
表示一个非数组类或接口,则新数组具有dimensions.length
维度,并且将componentType
作为其组件类型。 - 如果
componentType
表示一个数组类,则新数组的维数等于dimensions.length
和componentType
的维数的总和。在这种情况下,新数组的组件类型为componentType
的组件类型。新数组的维数不能超过该实现所支持的数组维数(通常为 255)。
-
- 参数:
componentType
- 表示新数组的组件类型的Class
对象dimensions
- 表示新数组维度的int
数组- 返回:
- 新数组
- 抛出:
NullPointerException
- 如果指定的componentType
参数为 nullIllegalArgumentException
- 如果指定的dimensions
参数是一个零维度的数组,或者所请求的维数超过了该实现所支持的数组维数的限制(通常为 225),或者度的数组,或者所请求的维数超过了该实现所支持的数组维数的限制(通常为 225),或者 componentType 为Void.TYPE
。NegativeArraySizeException
- 如果指定的dimensions
参数中的任意组件为负。
创建多维数组示例:
//get(Object array, int index)
返回指定数组对象中索引组件的值
//setInt(Object array, int index, int i)
将指定数组对象中索引组件的值设置为指定的 int
值。
Java 反射 Array动态创建数组的更多相关文章
- java反射实现动态代理
参考:http://www.cnblogs.com/rollenholt/archive/2011/09/02/2163758.html http://my.oschina.net/lyp3314/b ...
- Java 反射 设计模式 动态代理机制详解 [ 转载 ]
Java 反射 设计模式 动态代理机制详解 [ 转载 ] @author 亦山 原文链接:http://blog.csdn.net/luanlouis/article/details/24589193 ...
- java反射Array的使用
1.什么是Array Array是一个类的简写,全限定类名是java.lang.reflect.Array. 2.Array有什么用 Array可以代表所有的数组,可以通过Array动态创建与修改里面 ...
- Android JNI编程(五)——C语言的静态内存分配、动态内存分配、动态创建数组
版权声明:本文出自阿钟的博客,转载请注明出处:http://blog.csdn.net/a_zhon/. 目录(?)[+] 一:什么是静态内存什么又是动态内存呢? 静态内存:是指在程序开始运行时由编译 ...
- C# 通过反射来动态创建泛型类型
C# 通过反射来动态创建泛型类型与创建普通类型的区别在于:泛型参数的处理 创建泛型类型存在三种情况: 第一种:知道泛型类型,但需要动态指定泛型参数: 第二种:知道泛型参数,但需要动态创建指定参数的泛型 ...
- Java反射和动态代理
Java反射 反射机制 RTTI 编译器在编译时打开和检查*.class文件 反射机制 运行时打开和检查*.class文件 Java反射常见的方法 java反射的应用 setAccessible(bo ...
- 使用Array和[]创建数组的区别
原文 简书原文:https://www.jianshu.com/p/57a337d20aea 大纲 前言 对使用Array和[]创建数组的区别的解释 个人理解 前言 JS定义数组变量时,在不需要给定数 ...
- Java反射04 : 通过Array动态创建和访问Java数组
java.lang.reflect.Array类提供了通过静态方法来动态创建和访问Java数组的操作. 本文转载自:https://blog.csdn.net/hanchao5272/article/ ...
- Java使用Array类创建多维数组
1.创建一维数组 import java.lang.reflect.Array; public class ArrayTest { public static void main(String[] a ...
随机推荐
- COCOS2D-JS入门-官网template源码解析
首先介绍几个概念: 导演: 导演 (Director)是Cocos2d-JS引擎抽象的一个对象,Director是整个Cocos2d-JS引擎的核心,是整个游戏的导航仪,游戏中的一些常用操作就是由Di ...
- react-router的基础知识
一.基本用法 React Router 安装命令如下. $ npm install -S react-router 使用时,路由器Router就是React的一个组件. import { Router ...
- myBatis系列之七:事务管理
myBatis系列之七:事务管理 如果在操作时,如果运行时错误自动进行回滚,需要以下两个配置 @Transactional()public void save(User user) { userDao ...
- 关于angularjs+typeahead的整合
和angularjs-xeditable的基本相似,主要区别在于前者用于普通input中,后者用于xeditable中 在angularjs-xeditable需要自动提示的地方要用e-uib-typ ...
- Web流量劫持
BadTunnel实战之远程劫持任意内网主机流量 http://www.freebuf.com/articles/web/109345.html http://blog.csdn.net/ts__cf ...
- [Q]如何将图纸打印为黑白的及设置打印样式
若只是想打印黑白图形,则在“打印样式列表”选择“monchrome.ctb”打印样式即可. 设置其它打印样式:在CAD批量打图精灵主界面下点设置打印样式图标,如下图: 在打开的资源管理器中选择您想要更 ...
- ansible Strategies
Strategies 控制task的执行方式, 在2.0中增加了"free" Strategies, 可以允许每个host尽快的执行完一个play. 默认是Strategies是l ...
- Ansible hostvars
1. inventory hosts file 中的server 变量会覆盖group变量. hostvars: { "iaas_name": "test", ...
- Array对象 识记
1.Array 创建 new Array(); new Array(size); new Array(element0, element1, ..., elementn); 2.Array 对象属性 ...
- laravel 日志
laravel学院的 http://laravelacademy.org/post/195.html 他人博客的 http://www.cnblogs.com/yjf512/p/4173261.htm ...