本帖最后由 coqns 于 2012-12-7 22:38 编辑
如下面这段代码,我想用反射来创建对象并调用构造方法初始化二个私有成员变量。编译时无错,运行后会报“java.lang.NoSuchMethodException”,本人刚学反射,实在是搞不定,求助~- import java.lang.reflect.Constructor;
- import java.lang.reflect.Field;
- public class ReflectDemo{
-
- public static void main(String[] args) throws Exception{
- //通过反射来创建对象实例
- Constructor c=Person.class.getConstructor(String.class,Integer.class); //这行报错
- //通过反射来调用构造函数初始化name、age
- Person person=(Person)c.newInstance("李四",20);
- //输出
- System.out.println("姓名:"+person.getName+",年龄:"+person.getAge());
- }
- }
- class Person{
- //定义属性name、age
- private String name;
- private int age;
-
- Person(){
-
- }
-
- //构造函数初始化name、age
- Person(String name,int age){
- this.name=name;
- this.age=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;
- }
- }
复制代码 |