黑马程序员技术交流社区
标题:
帮忙看看这个程序为什么错了
[打印本页]
作者:
张頔
时间:
2012-7-28 16:30
标题:
帮忙看看这个程序为什么错了
本帖最后由 张頔 于 2012-7-28 16:39 编辑
package com.itheima;
import java.lang.reflect.*;
/*定义一个标准的JavaBean,名叫Person,包含属性name、age。
* 使用反射的方式创建一个实例、调用构造函数初始化name、age,
* 使用反射方式调用setName方法对名称进行设置,
* 不使用setAge方法直接使用反射方式对age赋值
* */
public class test7 {
/**
* @param args
* @throws NoSuchMethodException
* @throws SecurityException
*/
public static void main(String[] args) throws Exception {
Class<?> cl = Person.class;
Constructor constructor = cl.getConstructor(String.class,int.class);//提示这一行出错了
Person person = (Person)constructor.newInstance("张三",21);
Method method = cl.getMethod("setName",String.class);
method.invoke(person, "李四");
Field filed = cl.getDeclaredField("age");
filed.set(person, 22);
System.out.println("姓名:"+person.getName()+"年龄:"+person.getAge());
}
}
class Person{
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
Person(String name,int age){
setName(name);
setAge(age);
}
}
错误提示
Exception in thread "main" java.lang.NoSuchMethodException: com.itheima.Person.<init>(java.lang.String, int)
at java.lang.Class.getConstructor0(Class.java:2706)
at java.lang.Class.getConstructor(Class.java:1657)
at com.itheima.test7.main(test7.java:20)
搞不懂了 求助
作者:
张頔
时间:
2012-7-28 16:38
额 搞定了
我把person的构造方法设成了public的就行了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2