黑马程序员技术交流社区

标题: java 反射 [打印本页]

作者: 马蒙蒙    时间: 2011-7-27 19:29
标题: java 反射
public static void main(String[] args) {

int dims[]={5,10,15};
Object arr=Array.newInstance(Integer.TYPE,dims);
Object arrobj=Array.get(arr,3);
System.out.println(arrobj.getClass());
Class cls=arrobj.getClass().getComponentType();
}
请问这句里的 Object arrobj=Array.get(arr,3);是什么意思呢?
作者: 匿名    时间: 2011-7-27 19:33
Array是这个类的名字,然后Array.get(arr,3);就是获得arr这个对象上的第三个数据。

就像下边的例子[code]package cn.com.reflection;   
  
import java.lang.reflect.Array;   
  
public class ArrayTester1 {   
  
    /**  
     * 此类根据反射来创建  
     * 一个动态的数组   
     */  
    public static void main(String[] args) throws ClassNotFoundException {   
           
        Class classType=Class.forName("java.lang.String");   
           
        Object array= Array.newInstance(classType,10);  //指定数组的类型和大小   
           
         //对索引为5的位置进行赋值   
        Array.set(array, 5, "hello");   
           
        String s=(String)Array.get(array, 5);   
           
        System.out.println(s);   
           
           
        //循环遍历这个动态数组   
        for(int i=0;i<((String[])array).length;i++){   
               
            String str=(String)Array.get(array, i);   
               
            System.out.println(str);   
        }   
  
    }   
  
}[/code]
作者: 匿名    时间: 2011-7-28 11:02
标题: 取得对象中的第三个数据
Object arr=Array.newInstance(Integer.TYPE,dims);
上面代码通过反射动态的创建一个数组对象,类似于.NET中加载程序集动态创建对象一样
得到数组对象后  就可以对这个数组进行操作了,
Object arrobj=Array.get(arr,3); 就相当于取得数组对象中的第三个数据,再把它赋给另一个对象arrobj




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2