这是一种叫做反射的动态生成对象的机制,这两天看了点相关的文章初步了解了一些,也找到解决你这个问题的方法,其实也很简单,只是它的原理很复杂很难懂,实现方式还是比较简单的,强行去记住它就好.
Class cls=Class.forName("Thetest");//例如存在一个这样的类. Class par=new Class[]{int.class,double.classs}//例如导入的这个类的构造方法有着两个参数
Constructor con=c.getConstructor(par);//指定参数,以便获得适合的构造方法
以下是将引入的类实例化
Object objs=new Object[]{33,23.3}//object类是所有类的父类,所以它可以接收所有数据类型和对象,如果对面向对象的编程有所了解应该明白. Object obj=null; obj=con.newInstance(objs);//这里的原理与前相同. Thetest test=(Thetest)obj;//将这个声明的对象强制转化以便调用该对象. System.out.println(obj);//可以输出一些该对象的信息.
这是一个反射的用法,是一种比较高深技术.他的意图是动态的调用和创建运行时的对象,缺点就是会损失性能.而且比较难以理解.
转自 http://bbs.cfan.com.cn/thread-471714-1-1.html