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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李建锋 黑马帝   /  2012-2-15 21:35  /  2191 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 李建锋 于 2012-2-16 11:21 编辑

就比如说,通过反射获得了某一种数组的数据类型,让后想创建这种类型的变量,怎么搞??

评分

参与人数 1技术分 +1 收起 理由
唐秀启 + 1

查看全部评分

2 个回复

倒序浏览
  1. public static void main(String[] args) throws Exception {
  2.                 // TODO Auto-generated method stub
  3.                   Class clazz = test[].class;//得到数组类型的class
  4.                  //clazz.newInstance();//报错,无法使用
  5.                  Constructor[] constructors = clazz.getConstructors();
  6.                  System.out.println(constructors.length);//构造函数列表为空
  7.                  ////因此,无法直接利用数组的class来创建对象
  8.                  //我的思路是,先得到数组元素的类型,然后通过该类型的class来创建数组
  9.                  Class elementtypeClass = clazz.getComponentType();
  10.                  System.out.println(elementtypeClass.newInstance());//创建该类型变量
  11.                  System.out.println(Array.newInstance(elementtypeClass, 5));//创建该类型数组
  12.                  
  13.                
  14.         }

  15. }

  16. class test{
  17.        
  18. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
唐秀启 + 1

查看全部评分

回复 使用道具 举报
恩,你的思路不错,学习了!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马