课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
在众多编程语言之中,java编程语言的使用人数和范围都是名列前茅的,而今天我们就一起来了解一下,java反射的功能机制与常见问题。
一、java反射
通过反射,Java代码可以发现有关已加载类的字段,方法和构造函数的信息,并可以在安全限制内对这些字段,方法和构造函数进行操作。
简而言之,你可以在运行状态中通过反射机制做到:
1.对于任意一个类,都能够知道这个类的所有属性和方法;
2.对于任意一个对象,都能够调用它的任意一个方法和属性;
这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
在我看来我们平时使用Java反射主要涉及两个类(接口)Class,Member,如果把这两个类搞清楚了,反射基本就ok了。
二、java反射问题
1.性能开销
反射涉及类型动态解析,所以JVM无法对这些代码进行优化。因此,反射操作的效率要比那些非反射操作低得多。我们应该避免在经常被执行的代码或对性能要求很高的程序中使用反射。
2.安全限制
使用反射技术要求程序必须在一个没有安全限制的环境中运行。如果一个程序必须在有安全限制的环境中运行,如Applet,那么这就是个问题了。
3.内部曝光
由于反射允许代码执行一些在正常情况下不被允许的操作(比如访问私有的属性和方法),所以使用反射可能会导致意料之外的副作用--代码有功能上的错误,降低可移植性。反射代码破坏了抽象性,因此当平台发生改变的时候,代码的行为就有可能也随着变化。
使用反射的一个原则:如果使用常规方法能够实现,那么就不要用反射。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请在707945861群中学习了解。