Reflect 数组操作示例
来源:互联网 发布:ps -ef|grep java 编辑:程序博客网 时间:2024/05/04 16:27
package com.age.www;
import java.lang.reflect.Array;
public class ReflectArrayDemo {
public static void main(String[] args) throws Exception{
Object arry1d=Array.newInstance(Class.forName("java.lang.String"), 5);
String[] strary=(String[])arry1d;
strary[3]="abc";// 通过数组变量给实例赋值
Array.set(arry1d, 2, "bcd");//通过反射给实例赋值
System.out.println(Array.get(arry1d, 2)+strary[3]); /*
Object --arry1d-->赋值给了strary。 分别用
1.Array反射的方式设定数组的值。
2.直接将object对象向下转型为数组,然后再赋值。
//此时实例对象,被数组变量和反射方式进行了赋值!
*/
System.out.println("****************************************");
Object intary=Array.newInstance(int.class, 2,3);//如果两个int参数说明是2维数组,3个就是3维数组。 也可以将参数改为int[]{2,3} ,也可以表述为2行3列。
Object intary_sub=Array.get(intary, 1);//找到intary[1]这个对象,这个对象实际也是一个一维数组。因为它是一个地址指向的是一个长度是3个int数组。
int[] intary_tmp=(int[])intary_sub;
intary_tmp[2]=20; //将intary_sub引用变量直接向下转型为数组变量;然后将引用复制给另一个数组变量;然后在里面赋值. 这个数组引用变量和intary_sub指向同一个实例。。。此时然后再用Array反射输出这个实例的第三个位置的值:
System.out.println("将intary_sub引用变量直接向下转型为数组变量;然后将引用复制给另一个数组变量;然后在里面赋值. 这个数组引用变量和intary_sub指向同一个实例。。。此时然后再用Array反射输出这个实例的第三个位置的值:"+Array.get(intary_sub, 2));
//另一种方式是:
Array.set(intary_sub, 1, 10);
int[][] arr=(int[][])intary;
//System.out.println(Array.get(intary,1,2 )); 不能这样使用。。。 因为只有一个Static get(Object array,int)
System.out.println(arr[1][2]+"++++"+arr[1][1]); //所以必须用2维数组变量,输出相应的值。
}
}
- Reflect 数组操作示例
- Java Reflect 反射 .invoke 示例
- Java reflect反射简单示例
- Scala基础—数组操作示例
- reflect
- reflect
- Reflect
- Reflect
- Reflect
- Reflect
- Reflect
- Reflect
- Reflect
- reflect
- Reflect
- reflect
- reflect
- 通过reflect中得到数组类型
- Linux精讲——chattr特殊权限
- 常用网址
- io流处理文件夹复制功能(java代码)
- 道客巴巴免费复制
- 个人机房重构——组合查询及优化
- Reflect 数组操作示例
- Hello World
- GCC在C语言中内嵌汇编 asm __volatile__
- Find The Multiple
- 前端开发必备
- 配置_Druid和Spring关联监控配置
- 【poj1743】Musical Theme 后缀数组+二分
- 深入理解计算机系统-之-内存寻址(六)--linux中的分页机制
- Android — 之广播接收器