java反射基础
public class ReflectTest {
public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, IllegalAccessException, InstantiationException, InvocationTargetException, NoSuchFieldException {
// 类加载,会调用构造方法,执行类中的static静态代码块
Class clazz = Class.forName("interview.User");
System.out.println(clazz);
// 对象实例化
Object obj = clazz.newInstance();
// 设置对象属性
Field nameField = clazz.getDeclaredField("name"); // 获得name属性
nameField.setAccessible(true); // 私有属性必须设置访问权限
nameField.set(obj, "张三");
System.out.println(obj.toString());
// 类加载,不会调用构造方法,只有newInstance才会去执行static块
//Class clazz = ClassLoader.getSystemClassLoader().loadClass("interview.Singleton2");
//Systemem.out.println(c2);
}
}