黑马程序员技术交流社区

标题: 反射不能初始化有参构造函数??请看题 [打印本页]

作者: 华谦    时间: 2014-8-22 16:45
标题: 反射不能初始化有参构造函数??请看题
  1. /*
  2. 使用反射来创建对象,FanShe.Person是已经创建好的一个类,
  3. 里面有个构造函数就是String,int两个参数的
  4. 为什么会创建不了呢?提示:
  5.         - Constructor 是原始类型。应该将对通用类型 Constructor<T> 的引用参数化
  6.         - 类型安全:方法 getConstructor(Class...)属于原始类型 Class。应该将对通用类型 Class<T> 的引用
  7.          参数化

  8.          那为什么视频里的没有定义都可以呢?
  9. */
  10. public static void getClassObject_3() throws Exception
  11.         {
  12.                 String className = "FanShe.Person";                //类名必须要加包名,就算导包了也要加
  13.                 Class clazz = Class.forName(className);
  14.                
  15.                 Constructor constructor = clazz.getConstructor(String.class,int.class);
  16.                
  17.                 Object object = constructor.newInstance("小明",25);
  18.         }
复制代码



作者: 天黑偷牛    时间: 2014-8-26 12:30
不能吗?回去研究研究
作者: hejinzhong    时间: 2014-8-26 12:32
本帖最后由 hejinzhong 于 2014-8-26 12:46 编辑

int.class 这个改为Integer.class,他接受的参数不是基本数据类型的class,你可以去看看构造函数反射说明




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