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 参数为 null
IllegalArgumentException - 如果 componentType 为 Void.TYPE
NegativeArraySizeException - 如果指定的 length 为负

创建一个具有指定的组件类型和维度的新数组(多维数组)


newInstance

public static Object newInstance(Class<?> componentType,
int... dimensions)
throws IllegalArgumentException,
NegativeArraySizeException
创建一个具有指定的组件类型和维度的新数组。
如果 componentType 表示一个非数组类或接口,则新数组具有 dimensions.length 维度,并且将 componentType 作为其组件类型。
如果 componentType 表示一个数组类,则新数组的维数等于 dimensions.lengthcomponentType 的维数的总和。在这种情况下,新数组的组件类型为 componentType 的组件类型。

新数组的维数不能超过该实现所支持的数组维数(通常为 255)

参数:
componentType - 表示新数组的组件类型的 Class 对象
dimensions - 表示新数组维度的 int 数组
返回:
新数组
抛出:
NullPointerException - 如果指定的 componentType 参数为 null
IllegalArgumentException - 如果指定的 dimensions 参数是一个零维度的数组,或者所请求的维数超过了该实现所支持的数组维数的限制(通常为 225),或者度的数组,或者所请求的维数超过了该实现所支持的数组维数的限制(通常为 225),或者 componentType 为 Void.TYPE
NegativeArraySizeException - 如果指定的 dimensions 参数中的任意组件为负。   

  创建多维数组示例:

  //get(Object array, int index)   返回指定数组对象中索引组件的值

  //setInt(Object array, int index, int i) 将指定数组对象中索引组件的值设置为指定的 int 值。

  

Java 反射 Array动态创建数组的更多相关文章

  1. java反射实现动态代理

    参考:http://www.cnblogs.com/rollenholt/archive/2011/09/02/2163758.html http://my.oschina.net/lyp3314/b ...

  2. Java 反射 设计模式 动态代理机制详解 [ 转载 ]

    Java 反射 设计模式 动态代理机制详解 [ 转载 ] @author 亦山 原文链接:http://blog.csdn.net/luanlouis/article/details/24589193 ...

  3. java反射Array的使用

    1.什么是Array Array是一个类的简写,全限定类名是java.lang.reflect.Array. 2.Array有什么用 Array可以代表所有的数组,可以通过Array动态创建与修改里面 ...

  4. Android JNI编程(五)——C语言的静态内存分配、动态内存分配、动态创建数组

    版权声明:本文出自阿钟的博客,转载请注明出处:http://blog.csdn.net/a_zhon/. 目录(?)[+] 一:什么是静态内存什么又是动态内存呢? 静态内存:是指在程序开始运行时由编译 ...

  5. C# 通过反射来动态创建泛型类型

    C# 通过反射来动态创建泛型类型与创建普通类型的区别在于:泛型参数的处理 创建泛型类型存在三种情况: 第一种:知道泛型类型,但需要动态指定泛型参数: 第二种:知道泛型参数,但需要动态创建指定参数的泛型 ...

  6. Java反射和动态代理

    Java反射 反射机制 RTTI 编译器在编译时打开和检查*.class文件 反射机制 运行时打开和检查*.class文件 Java反射常见的方法 java反射的应用 setAccessible(bo ...

  7. 使用Array和[]创建数组的区别

    原文 简书原文:https://www.jianshu.com/p/57a337d20aea 大纲 前言 对使用Array和[]创建数组的区别的解释 个人理解 前言 JS定义数组变量时,在不需要给定数 ...

  8. Java反射04 : 通过Array动态创建和访问Java数组

    java.lang.reflect.Array类提供了通过静态方法来动态创建和访问Java数组的操作. 本文转载自:https://blog.csdn.net/hanchao5272/article/ ...

  9. Java使用Array类创建多维数组

    1.创建一维数组 import java.lang.reflect.Array; public class ArrayTest { public static void main(String[] a ...

随机推荐

  1. Ubuntu14.04安装wineqq国际版出现无法输入中文的解决方法

    执行命令:sudo vim /usr/bin/wine-qqintl 将"export LANG=zh_CN.utf8"改为"export LANG=en_US.utf8 ...

  2. BOGEER博格尔YT-813码表使用说明书 (我的是YT-823)

    BOGEER博格尔YT-813码表使用说明书.doc 源:http://w.gdu.me/wiki/Bike/BOGEER-YT-813.html 参数设置 首先要测量出车轮的周长,测出车轮周长后按住 ...

  3. Python网络编程学习_Day9

    一.socketserver实现多并发 socket只能实现单进程通讯,要实现多进程同时和服务端通讯就要使用socketserver. 代码如下: import socket client = soc ...

  4. JTree单击事件

    import javax.swing.*; import javax.swing.tree.*; import java.awt.FlowLayout; import java.awt.GridLay ...

  5. 【IE6的疯狂之九】li在IE中底部空行的BUG

    曾经写过[IE6的疯狂之六]li在IE中底部3像素的BUG(增加浮动解决问题),原文地址:http://www.css88.com/archives/421: IE6 BUG大全: http://ww ...

  6. openstack私有云布署实践【19 通过python客户端 创建实例VM指定IP地址】

    还有一种创建方式 是使用py开发工具,调用openstackclient的方法进行创建实例 ,好处就是可随意指定我们要的虚拟机IP地址,需求的场景就是,某天我们需要主动分配一个比较熟知的IP用作某个服 ...

  7. 前端自动化部署之gulp

    1.首先需要安装node+npm(这里不再叙述,网上教程一大堆) 2.gulp全局安装:npm install -g gulp 3.cd进入到你的项目目录,这里使用demo文件夹为我的示例项目 4.在 ...

  8. Chapter 20_1 table库

    table库是由一些辅助函数构成,把table作为数组来操作,所有的函数都忽略传入参数的那张表中的非数字键. 无论如何,若一个操作需要取表的长度,这个表必须是一个真序列,或是拥有__len元方法. 提 ...

  9. GCD系列 之(一):基本概念和Dispatch Queue

    参考学习https://www.dreamingwish.com/article/grand-central-dispatch-basic-1.html系列文章,貌似也是翻译自他处的.觉得非常完整,就 ...

  10. echarts中,y轴文本倾斜

    yAxis : [ { type : 'category', data : ['国家公务员','专业技术人员','职员','企业管理人员'], axisLabel:{ interval: 0 , ro ...