package _5_32;
import java.lang.reflect.Constructor;
class Person {
private String name;
private int age;
public Person() {
this.name = "default";
this.age = 0;
}
public Person(String name) {
this.name = name;
this.age = 0;
}
public Person(int age) {
this.name = "null";
this.age = age;
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String toString() {
return "[" + this.name + " " + this.age + "]";
}
public int addAge(int a) {
return age + a;
}
}
public class GetConstructor {
public static void main(String[] args) {
Class<?> demo = null;
try {
demo = Class.forName("code0508.Person");
} catch (Exception e) {
e.printStackTrace();
}
// Get all constructors
Constructor<?>[] cons = demo.getConstructors();
try {
Constructor<?> cons0 = demo.getConstructor();
Constructor<?> cons1 = demo.getConstructor(String.class);
Constructor<?> cons2 = demo.getConstructor(int.class);
Constructor<?> cons3 = demo.getConstructor(String.class, int.class);
Person per1 = (Person) cons0.newInstance();
Person per2 = (Person) cons1.newInstance("ZhangShan");
Person per3 = (Person) cons2.newInstance(20);
Person per4 = (Person) cons3.newInstance("Lisi", 20);
System.out.println(per1); // [default 0]
System.out.println(per2); // [ZhangShan 0]
System.out.println(per3); // [null 20]
System.out.println(per4); // [Lisi 20]
} catch (Exception e) {
e.printStackTrace();
}
}
}

被折叠的 条评论
为什么被折叠?



