反射
1.含义:
Java 反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为 Java 语言的反射机制。
2.反射的优点:
反射提高了程序的灵活性和扩展性,降低耦合性,提高自适应能力
3.反射的缺点:
炫耀通过动态的接入方法或者字段,这样会比直接的操作相对慢一些,所以会造成性能上偏慢的问题。
4.反射的三大作用:
4.1.动态获取类对象的三种方式:
1.Class.forName("全路径名"); ->使用情况: jdbc/自定义mvc框架调用
2.类名.class -> 使用情况:结合泛型做通用分页查询方法会用
3.类java.lang.Class(实例的类)实例(Student.class)的类实例getClass()获取 ->使用情况:通用的增删改结合泛型使用
4.2通过反射对对象实例化
一般情况:使用关键字(new)进行实例化
反射:通过调用java.lang.reflect.construct中的newInstance()方法来实例化对象
4.3动态调用方法(Method),属性(Filed),构造器( Constructor)
public static void main(String[] args) throws Exception {
Class clazz = Class.forName("com.itcase.test.Student");
Method method= clazz.getDeclaredMethod("add", String.class);
m.invoke(Studnet, "张三");
}
public static void main(String[] args) throws Exception {
Class clazz = Class.forName("com.itcase.test.Student");
Filed filed= clazz.getDeclaredFiled();
}
public static void main(String[] args) throws Exception {
Class clazz = Class.forName("com.itcase.test.Student");
Constructor constructor= clazz.getDeclaredConstructor();
}