专业的JAVA编程教程与资源

网站首页 > java教程 正文

Java反射(java反射机制原理)

temp10 2024-09-07 00:04:12 java教程 9 ℃ 0 评论

什么是反射?

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

Java反射(java反射机制原理)

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

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

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

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

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

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

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

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

#大有学问#?

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表