反射
几个基本类
Class
Method
Fields
反射创建对象的几种方法
1)Class <ReflectDemo> reflectClass = ReflectDemo.Class; // reflectClass.newInstance();
2)Class<?> aClass = Class.forName(“类全路径名(包名+类名)”);
3)Class< ? extends Class> aclass = AClass.getClass();
反射适用场景:
1)Spring IOC容器创建对象
2)JDBC加载驱动,Class.forName("");
两者区别:
1)new 无法访问私有属性,反射可以通过setAccessible()来取消隐藏访问权限
2)new 必须知道类名,反射不需要知道类名也可以创建对象