黑马程序员技术交流社区

标题: 请问怎么动态的创建一种数据类型的变量 [打印本页]

作者: 李建锋    时间: 2012-2-15 21:35
标题: 请问怎么动态的创建一种数据类型的变量
本帖最后由 李建锋 于 2012-2-16 11:21 编辑

就比如说,通过反射获得了某一种数组的数据类型,让后想创建这种类型的变量,怎么搞??
作者: 陈丹阳    时间: 2012-2-15 22:59
  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. }
复制代码

作者: 李建锋    时间: 2012-2-16 11:21
恩,你的思路不错,学习了!




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