黑马程序员技术交流社区

标题: 反射 [打印本页]

作者: 黑马伍仪华    时间: 2012-3-17 21:35
标题: 反射
package 入学测试;
import java.beans.PropertyDescriptor;
import java.lang.reflect.*;

public class num4 {
        public static void main(String[]args)throws Exception{
                //结合泛型,使程序更安全
        Constructor<person> ct=person.class.getConstructor(String.class,int.class);
        person p=ct.newInstance("伍仪华",20);
       
        String value="毕老师";

        Method setName=p.getClass().getMethod("setName", String.class);
        setName.invoke(p, value);

        System.out.println(p.getName());
       
        }

}
  class person1 {
        private String Name;
        private int Age;
public String getName() {
                return Name;
        }
        public void setName(String name) {
                Name = name;
        }
        public int getAge() {
                return Age;
        }
        public void setAge(int age) {
                Age = age;
        }
public person1(String name, int Age){
        this.Name=Name;
        this.Age=Age;
}
}

错在哪?求解释
作者: 黑马伍仪华    时间: 2012-3-17 21:41
报错说这行错了,但是不知道为什么
Exception in thread "main" java.lang.NoSuchMethodException: 入学测试.person.<init>(java.lang.String, int)错误信息
作者: 段浩亮    时间: 2012-3-17 21:43
Constructor<person> ct=person.class.getConstructor(String.class,int.class);
        person p=ct.newInstance("伍仪华",20);这两句话错了  你定义的是person1类,而你写的是person
作者: 魏群    时间: 2012-3-17 23:00
person.class.getConstructor(String.class,int.class);返回的是person类的构造器 可你没有Person类,只有Person1 另:类名首字母要大写。
作者: 泮和顺    时间: 2012-3-19 16:56
类person名字没对应  你试下Field强制来改下name 而不通过Method




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