A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

package itcast.javabean;

public class Person {

        private String name;
        private int age;


        public Person() {
       
        }
        public 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;
        }

}


package itcast.javabean;

import java.lang.reflect.Constructor;
import java.lang.reflect.Field;

public class BeanReflection {

        public static void main(String[] args) throws Exception {
                Constructor[] constructor=Class.forName("itcast.javabean.Person").getConstructors();
                System.out.println(constructor.length);
                for(Object obj:constructor){
                        System.out.println(obj);
                }
               
                Constructor constructor1=Class.forName("itcast.javabean.Person").getConstructor(Person.class);
                System.out.println(constructor1);
        }       
               
}

  我能获取到所有的构造函数,为什么我获取单个构造函数的时候就给我报java.lang.NoSuchMethodException! 求教啊?

3 个回复

倒序浏览
Constructor constructor1=Class.forName("itcast.javabean.Person").getConstructor(Person.class);
这里的参数传错了吧 应该传的是这个构造函数参数的类型
回复 使用道具 举报
public class BeanReflection {

        public static void main(String[] args) throws Exception {
                Constructor[] constructor=Class.forName("itcast.javabean.Person").getConstructors();
                System.out.println(constructor.length);
                for(Object obj:constructor){
                        System.out.println(obj);
                }
               
                Constructor constructor1=Class.forName("itcast.javabean.Person").getConstructor(Person.class);//-----------此处错误。如果你想得到两个参数的那个构造函数
                                                                                                               //应该是getConstructor(String.class,int.class);
                System.out.println(constructor1);
        }      
               
}
回复 使用道具 举报
  恩 谢谢了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马