A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 马蒙蒙 黑马帝   /  2011-7-27 19:29  /  2340 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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);是什么意思呢?

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

2 个回复

正序浏览
黑马网友  发表于 2011-7-28 11:02:30
藤椅

取得对象中的第三个数据

Object arr=Array.newInstance(Integer.TYPE,dims);
上面代码通过反射动态的创建一个数组对象,类似于.NET中加载程序集动态创建对象一样
得到数组对象后  就可以对这个数组进行操作了,
Object arrobj=Array.get(arr,3); 就相当于取得数组对象中的第三个数据,再把它赋给另一个对象arrobj
回复 使用道具 举报
黑马网友  发表于 2011-7-27 19:33:54
沙发
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]

评分

参与人数 1技术分 +2 收起 理由
admin + 2

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马