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 ...
随机推荐
- H5 App页面 绝对定位 软键盘弹出时顶起底部按钮
做H5 App页面时,有时候,按钮可能会放到页面的最底下,这个时候可能会用到绝对定位(position: absolute),但是,当input 输入框被点击时,弹出的软键盘会顶起底部的按钮,就像这样 ...
- C++四种cast操作符
C 风格(C-style)强制转型如下: (T) expression 或 T(expression) //函数风格(Function-style) 两种形式之间没有本质上的不同. 对于具有转换的简 ...
- 简易富文本编辑器bootstrap-wysiwyg源码注释
好久没写随笔了,因为最近比较忙,小公司基本都是一个前端干所有属于和部分不属于前端的事情,所以就没空弄了,即使想分享,也因为没有时间和精力就搁置了. 这周周六日休息,正好时间比较充裕(ps:目前处在单休 ...
- Ubuntu下Git的使用之创建版本库
创建版本库 什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改.删除,Git都能跟踪,以便任何时刻都可以 ...
- 消息队列 RabbitMQ 与 Spring 整合使用
一.什么是 RabbitMQ RabbitMQ 是实现 AMQP(高级消息队列协议)的消息中间件的一种,最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性.扩展性.高可用性等方面表现不俗.消 ...
- 【转】Zookeeper-Watcher机制与异步调用原理
声明:本文转载自http://shift-alt-ctrl.iteye.com/blog/1847320,转载请务必声明. Watcher机制:目的是为ZK客户端操作提供一种类似于异步获得数据的操作. ...
- 我在GNU/Linux下使用的桌面环境工具组合
为了使GNU/Linux桌面环境下加载的程序较少以节省内存资源和提高启动时间,我目前并不使用重量级的桌面环境KDE和Gnome,甚至连登录窗界面gdm或xdm都不用,而是直接启动到控制台,登录后调用s ...
- 前端自动化部署之gulp
1.首先需要安装node+npm(这里不再叙述,网上教程一大堆) 2.gulp全局安装:npm install -g gulp 3.cd进入到你的项目目录,这里使用demo文件夹为我的示例项目 4.在 ...
- List<T>集合导出csv方法参考,通过增加自定义的属性控制输出的字段。
public string CreateAdvExcel(List<GridScoreManager> lt) { StringBuilder builder = new StringBu ...
- HTML canvas图像裁剪
canvas drawImage方法的图像裁剪理解可能会比较耗时,记录一下,以便供人翻阅! context.drawImage(img,sx,sy,swidth,sheight,x,y,width,h ...