反射

反射:将类的各个组成部分封装为其他对象

通过反射你可以获取任意一个类的所有属性和方法,你还可以调用这些方法和属性。

优点:让代码更加灵活,为各种框架提供开箱即用的功能,可以解耦,提高程序的可扩展性

缺点:增加了安全问题。

 

反射的应用场合:编译时类型和运行时类型

      编译时的类型由声明对象时实用的类型来决定

      运行时的类型由实际赋值给对象的类型决定

 

Java中一大利器注解的实现也用到了反射。

 为什么你在Spring的时候,一个@Component注解就声明了一个类为Spring Bean呢?

为什么你通过一个@Value注解就拂去到配置文件中的表呢?

         因为你可以基于反射分析类,然后获取到类/属性/方法的参数上的注解,你获取到注解以后,就可以作进一步的处理。

 

反射使用步骤:(获取class对象,调用对象方法)

      获取class方法(最常用):1.class.forName(”全类名“):将字节码文件加载进内存,返回Class对象    ---->多用于配置文件

                                                     2.类名.class:通过类名的属性class获取   -->多用于参数的传递

                                                     3.对象.getClass():getClass()方法在Object类中定义-->多用于对象的获取字节码的方式

   

posted @   远乡人  阅读(45)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示
主题色彩