黑马程序员技术交流社区

标题: 关于反射,我的怎么报错(我找到原因了) [打印本页]

作者: 高正新    时间: 2014-3-16 10:52
标题: 关于反射,我的怎么报错(我找到原因了)
本帖最后由 高正新 于 2014-3-16 10:55 编辑

Person类如下:
  1. package com.fly.reflect;

  2. import java.util.List;

  3. public class Person {
  4.         public Person() {
  5.                 System.out.println("person");
  6.         }
  7.         
  8.         public Person(String name) {
  9.                 System.out.println("name:" + name);
  10.         }
  11.         
  12.         public Person(String name, int age) {
  13.                 System.out.println("person name:" + name + "   age:" + age);
  14.         }
  15.         
  16.         private Person(List list) {
  17.                 System.out.println("list");
  18.         }
  19.         
  20.         public void testMe() {
  21.                 System.out.println("可以了");
  22.         }
  23. }
复制代码
反射得到构造函数方法如下:
  1. //反射构造函数:public Person(List list)
  2.         @Test
  3.         public void test4() throws Exception {
  4.                 Class clazz = Class.forName("com.fly.reflect.Person");
  5.                 Constructor c = clazz.getConstructor(List.class); //原来是这里写错了。
  6.                 c.setAccessible(true); //暴力反射
  7.                 Person p = (Person)c.newInstance(new ArrayList());
  8.                 p.testMe();
  9.         }
复制代码

我运行为什么总是报错啊?
  1. Exception in thread "main" java.lang.NoSuchMethodException: com.fly.reflect.Person.<init>(java.util.List)
  2.         at java.lang.Class.getConstructor0(Class.java:2810)
  3.         at java.lang.Class.getConstructor(Class.java:1718)
  4.         at com.fly.reflect.Demo2.main(Demo2.java:11)
复制代码




作者: 高正新    时间: 2014-3-16 10:56
原来是我粗心了。。:L




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