Java反射

什么是Java反射机制

反射即是在运行时获取类的所有信息的一种功能。

Java反射机制是在运行状态中对于任意一个类,

都能知道这个类的所以属性和方法;

对于任何一个对象,都能够调用它的任何一个方法和属性;

这样动态获取新的以及动态调用对象方法的功能就叫做反射。

反射类

1.java.lang.Class;

2.java.lang.reflect.Constructor;

3.java.lang.reflect.Field;

4.java.lang.reflect.Method;

5.java.lang.reflect.Modifier;

获取Class对象的三种方法。

 

 

2. 通过 Class 类可以获取成员变量、成员方法、接口、超类、构造方法等

 

 

 

通过Class对象获取类的所有属性

 

 

通过Class对象获取类的所有方法

 

 

 

 

可以获取指定属性和构造方法

 

 

 

优点: 
(1)能够运行时动态获取类的实例,大大提高系统的灵活性和扩展性。 
(2)与Java动态编译相结合,可以实现无比强大的功能 

缺点: 
(1)使用反射的性能较低 
(2)使用反射相对来说不安全 
(3)破坏了类的封装性,可以通过反射获取这个类的私有方法和属性 

所以灵活使用反射能让我们代码更加灵活,这里比如JDBC原生代码注册驱动hibernate 的实体类Spring 的 AOP等等都有反射的实现。

但是凡事都有两面性,反射也会消耗系统的性能,增加复杂性等,合理使用才是真!



posted @ 2022-06-17 17:14  luoshen-luo  阅读(27)  评论(0编辑  收藏  举报