Java反射

什么是反射?

反射(Reflection),指程序可以访问、检测和修改本身状态或行为的一种能力。

每个Java程序运行前,需要先将.java文件通过虚拟机JVM编译成.class文件,然后将编译后的.class文件放到服务器执行。由此可知,真正被执行的并不是Java源文件,而是编译文件.class,此时针对源文件的一切操作,都不会对已有的编译文件产生任何影响。

那么反射可以做些什么呢?

反射可以在程序运行时直接去操作.class文件。也就是说,只要使用反射,就可以操作类中所有的变量、方法、构造器等信息。

Java提供了一个Class类,它的内容是通过读入.class文件的字节码获取的。常用的获取Class对象方式是:Class.forName()。在Java的Spring框架中,关于IoC(控制反转)的应用,就是通过反射来实现的。

使用反射的好处是:对于整个程序而言,可以做到无感操作且灵活;对于框架设计来说,可以更好的降低耦合。

至于反射的缺点,也是非常显而易见的。首先就是安全问题,因为反射是反向获取对象信息,破坏了代码的抽象性,同时因为绕过了限制条件(如访问私有),降低了代码的可靠性和移植性。

最后提示,反射虽好,但不推荐框架以外的使用,请谨慎。

#头号有新人#​#分享#​#java#​#反射#​

展开阅读全文

页面更新:2024-03-01

标签:反射   抽象性   由此可知   源文件   框架   对象   操作   代码   文件   程序

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top