反射就是把 java 的各种成分映射成一个对象,反射首先获得字节码:
①Class.forName(“类的路径”)
②类名.Class
③实例.getClass
优点:扩展性高
缺点:初始化对象效率低
用处:
①jdbc:Class.forName(“com.mysql.jdbc.Driver.class”)
②mybatis ORM 映射
③spring:IOC,
④自定义注解
无参:Class forName=Class.forName(“com.haicao.User”);
User user=forName.newInstance();
有参: Class forName=Class.forName(“com.haicao.User”);
Class constructor=forName.getConstructor(String.class)(clazz);
User user=(User)constructor.newInstance(“12”,”12”);
禁止 Java 反射:将构造函数私有化 public--->private