public class ConstructorDemo { public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, SecurityException { // 获取Class对象 Class<?> clazz = Class.forName("com.unit1.test.reflect.Dog"); // 获取Class类的构造方法对象 // 1、获取所有公共构造方法对象getConstructors() Constructor[] constructors = clazz.getConstructors(); for (Constructor constructor : constructors) { System.out.println(constructor); } // 2、获取单个公共构造方法对象getConstructor(int.class),注意:这里的参数必须和我们要获取的构造方法里的参数一致 Constructor constructor = clazz.getConstructor(String.class, int.class); System.out.println(constructor); // 3、获取所有构造方法对象getDeclaredConstructors() Constructor[] declaredConstructors = clazz.getDeclaredConstructors(); for (Constructor constructor2 : declaredConstructors) { System.out.println(constructor2); } // 4、获取单个构造方法对象getDeclaredConstructor(int.class),注意:这里的参数必须和我们要获取的构造方法里的参数一致 Constructor declaredConstructor = clazz.getDeclaredConstructor(int.class); System.out.println(declaredConstructor); } }
public class Dog { private String name; private int age; public Dog() {} public Dog(String name, int age) { this.name = name; this.age = age; } private Dog(String name) { this.name = name; } private Dog(int age) { 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; } public void eat() { System.out.println("吃"); } @Override public String toString() { return "Dog [name=" + name + ", age=" + age + "]"; } }