首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

一个小小的有关问题

2012-01-21 
一个小小的问题packagecom.accpimportjava.lang.reflect.Arrayimportjava.util.Enumeration/***p Tit

一个小小的问题
package   com.accp;

import   java.lang.reflect.Array;
import   java.util.Enumeration;

/**
  *   <p> Title:   </p>
  *
  *   <p> Description:   </p>
  *
  *   <p> Copyright:   Copyright   (c)   2007 </p>
  *
  *   <p> Company:   </p>
  *
  *   @author   not   attributable
  *   @version   1.0
  */
public   class   ArrayExample   {
        public   ArrayExample()   {
        }

        public   static   void   main(String[]   args)   {
                ArrayExample   examp   =   new   ArrayExample();
                int   number[]   =new   int[]   {1,   2,   3,   4,   5,   6};
                Object   arr   =   Array.newInstance(Integer.TYPE,   number);
                Object   obj   =   Array.get(arr,   3);
                Class   cla=obj.getClass().getComponentType();
                System.out.println( " "   +   cla);
        }
}
为什么编译器会报数组越界的异常
我明明实例化了的啊

[解决办法]
对Array.newInstance的理解有问题,Array.newInstance()的原型是:
public static Object newInstance(Class <?> componentType,
int[] dimensions);

你看,第二个参数是dimensions,也就是说你创建一个多维数组:

int[1][2][3][4][5][6]

所以,arr数组的长度是1,你自能执行: Array.get( arr,0 )

热点排行