演示通过反射机制创建实例
package reflection_;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
public class ReflectCreateInstance {
public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, NoSuchMethodException, InvocationTargetException {
Class<?> aClass = Class.forName("reflection_.User");
Object o = aClass.newInstance();
System.out.println(o);
Constructor<?> constructor = aClass.getConstructor(String.class);
Object sherry = constructor.newInstance("Sherry");
System.out.println("sherry = " + sherry);
Constructor<?> declaredConstructor = aClass.getDeclaredConstructor(String.class, int.class);
declaredConstructor.setAccessible(true);
Object vodka = declaredConstructor.newInstance("Vodka", 34);
System.out.println("Vodka = " + vodka);
}
}
class User{
private String name = "Gin";
private int age = 35;
public User() {
}
public User(String name) {
this.name = name;
}
private User(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}