Java反射有多强?它拥有这五大神奇功能

什么是反射?【Java反射有多强?它拥有这五大神奇功能】在JAVA中,对于任意一个运行中的对象,可以调用该对象的任意属性和方法;已知一个类,可以获取这个类的所有属性和方法,这就是反射机制 。
一般情况下,根据面向对象封装原则,Java实体类的属性都是私有的,我们不能获取类中的属性 。但我们可以根据反射,获取私有变量、方法、构造器,甚至是注解 。

Java反射有多强?它拥有这五大神奇功能

文章插图
 
如何使用?在最近的项目开发中,有一个需求:将人员档案的80+个字段,设置部分为隐私字段,比如有权限可以看,权限需要动态分配 。
我们不可能写80个if - else,那么我就使用了Java反射,获取人员档案类的所有字段,并且将设置隐私字段的值全部set为“无权限访问”
首先一点,我们根据类或者对象,就可以获取class对象
User user = new User();// 方式一 类获取Class userClass = User.class;// 方式二 对象获取Class userClass2 = user.getClass();// 方式三 静态获取Class userClass3 = forName("zwz.pojo.User");这个class对象是什么呢?
Java反射的所有内容,都是围绕这个class对象展开


    推荐阅读