反射学习4-通过反射机制动态…
来源:互联网 发布:sql delete多个 编辑:程序博客网 时间:2024/06/05 04:28
原文地址:反射学习4-通过反射机制动态创建和访问数组作者:挂甲人
一、前言
java.lang.reflect.Array类提供了动态创建和访问数组元素的各种静态方法。
static Object
newInstance(Class<?> componentType,int... dimensions)
创建一个具有指定的组件类型和维度的新数组。componentType:组件类型,Java中将数组的数组也就是二维数组当做一个组件。
static Object
get(Object array, int index)
返回指定数组对象中索引组件的值。
static void
set(Object array, int index, Object value)
将指定数组对象中索引组件的值设置为指定的新值。
二、以下是几个Array的实例
调用Array的newInstance()方法创建数组:
一维数组:
Class classType = Class.forName("java.lang.String");
Object array = Array.newInstance(classType, 10);
多维数组:
Class classType = Class.forName("java.lang.String");
int[] dimension = new int[]{10,10,10};
Object array2_3d = Array.newInstance(classType, dimension);
调用Array的get()方法获取数组的值:
一维数组:
System.out.println((String)Array.get(array, 1));
多维数组:
Class classType = Class.forName("java.lang.String");
int[] dimension = new int[]{10,10,10};
Object array2_3d = Array.newInstance(classType, dimension);
//获取三维数组的第一个数组组件array2Obj,是一个二维数组
Object array2Obj_2d = Array.get(array2, 1);
//获取array2Obj_2的第二个数组组件,是一个一维数组
Object array2Obj_1d = Array.get(array2Obj_2d, 2);
调用Array的set()方法设置数组的值:
一维数组:
Array.set(array, 1, "arthinking");
多维数组:
Array.set(array2Obj_1d, 3, "arthinking");
完整代码如下
一维数组,创建一个一维数组并设置第一个元素的值:
Class classType = Class.forName("java.lang.String");
Object array = Array.newInstance(classType, 10);
Array.set(array, 1, "arthinking");
System.out.println((String)Array.get(array, 1));
多维数组,创建一个三维数组并设置元素array[1][2][3]的值:
Class classType = Class.forName("java.lang.String");
int[] dimension = new int[]{10,10,10};
Object array2_3d = Array.newInstance(classType, dimension);
//获取三维数组的第一个数组组件array2Obj,是一个二维数组
Object array2Obj_2d = Array.get(array2_3d, 1);
//获取array2Obj_2的第二个数组组件,是一个一维数组
Object array2Obj_1d = Array.get(array2Obj_2d, 2);
//设置array2Obj_1的第三个元素的值
Array.set(array2Obj_1d, 3, "arthinking");
//从三维数组array2中获取刚才设置的值
System.out.println(((String[][][])array2_3d)[1][2][3]);
//获取array2Obj_2d的组件类型
Class<?> classType2 =array2Obj_2d.getClass().getComponentType();
java.lang.reflect.Array类提供了动态创建和访问数组元素的各种静态方法。
static Object
创建一个具有指定的组件类型和维度的新数组。componentType:组件类型,Java中将数组的数组也就是二维数组当做一个组件。
static Object
get(Object array, int index)
返回指定数组对象中索引组件的值。
static void
set(Object array, int index, Object value)
将指定数组对象中索引组件的值设置为指定的新值。
二、以下是几个Array的实例
一维数组:
Class classType = Class.forName("java.lang.String");
Object array = Array.newInstance(classType, 10);
多维数组:
Class classType = Class.forName("java.lang.String");
int[] dimension = new int[]{10,10,10};
Object array2_3d = Array.newInstance(classType, dimension);
调用Array的get()方法获取数组的值:
一维数组:
System.out.println((String)Array.get(array, 1));
多维数组:
Class classType = Class.forName("java.lang.String");
int[] dimension = new int[]{10,10,10};
Object array2_3d = Array.newInstance(classType, dimension);
//获取三维数组的第一个数组组件array2Obj,是一个二维数组
Object array2Obj_2d = Array.get(array2, 1);
//获取array2Obj_2的第二个数组组件,是一个一维数组
Object array2Obj_1d = Array.get(array2Obj_2d, 2);
调用Array的set()方法设置数组的值:
一维数组:
Array.set(array, 1, "arthinking");
多维数组:
Array.set(array2Obj_1d, 3, "arthinking");
完整代码如下
一维数组,创建一个一维数组并设置第一个元素的值:
Class classType = Class.forName("java.lang.String");
Object array = Array.newInstance(classType, 10);
Array.set(array, 1, "arthinking");
System.out.println((String)Array.get(array, 1));
多维数组,创建一个三维数组并设置元素array[1][2][3]的值:
Class classType = Class.forName("java.lang.String");
int[] dimension = new int[]{10,10,10};
Object array2_3d = Array.newInstance(classType, dimension);
//获取三维数组的第一个数组组件array2Obj,是一个二维数组
Object array2Obj_2d = Array.get(array2_3d, 1);
//获取array2Obj_2的第二个数组组件,是一个一维数组
Object array2Obj_1d = Array.get(array2Obj_2d, 2);
//设置array2Obj_1的第三个元素的值
Array.set(array2Obj_1d, 3, "arthinking");
//从三维数组array2中获取刚才设置的值
System.out.println(((String[][][])array2_3d)[1][2][3]);
//获取array2Obj_2d的组件类型
Class<?> classType2 =array2Obj_2d.getClass().getComponentType();
0 0
- 反射学习4-通过反射机制动态…
- 反射学习2-通过反射机制动态…
- 反射学习3-通过反射机制修改…
- 反射学习2-通过反射机制动态获取属性的值模拟Struts的自动赋值
- 反射机制学习4(反射访问字段)
- Java学习之反射机制---动态代理
- 反射机制动态代理
- 反射--动态代理机制
- 通过java反射机制动态调用某方法的总结
- Java 通过反射机制动态调用java类方法
- 通过反射机制动态设置类的私有域
- Java通过反射机制动态设置对象属性值
- 反射02:通过反射动态操作类
- Java反射机制总结学习--通过反射机制了解泛型本质
- 学习反射机制 c#
- 学习 c# 反射机制
- java反射机制学习
- JAVA反射机制学习
- javascript 判断某个数组中是…
- JS只能输入数字,数字和字母等的正…
- 反射学习2-通过反射机制动态…
- 反射学习1、反射机制的介绍…
- 反射学习3-通过反射机制修改…
- 反射学习4-通过反射机制动态…
- Oracle 语法之 OVER&nbs…
- 数据库分页大全(oracle利用解析函…
- oracle 分析及开窗函数
- jquery form表单.seria…
- HTML DOM defaultValue 属性
- HTML DOM defaultValue 属性
- oracle删除或者更新了表里面的数据…
- 图文介绍openLDAP在windows上的安装配置