因为getConstructors是获得所有的公共构造方法,不管这个构造方法传入的是什么参数,getConstructors都能获得。而getConstructor()则只能获得指定参数的构造方法。例如:
public class Test10 {
public static void main(String[] args) throws Exception
{
Class cls = Test10.Person.class;
System.out.println(cls.getName());
//获得传入参数name的构造函数
Constructor con = cls.getConstructor(Test10.class,String.class);
//获得参数name和age的构造函数
Constructor con1 = cls.getConstructor(Test10.class,String.class,int.class);
//获得所有的公共构造函数
Constructor[] con2 = cls.getConstructors();
System.out.println("con构造函数的参数类型------------");
System.out.println(con.toString());
System.out.println("con1构造函数的参数类型---------");
System.out.println(con1.toString());
System.out.println("con2构造函数的参数类型----------");
for(Constructor c : con2){
System.out.println(c.toString());
}
}
//内部类
public class Person{
public Person(){}
public Person(String name){}
public Person(String name,int age){}
private String name;
}
} |