【代码优化】反射机制的慎用

来源:互联网 发布:奥登大学数据 编辑:程序博客网 时间:2024/05/18 00:42

反射——给定一个类的class实例,你可以获得Constructor,method和field实例。而且,Constructor,method和field实例

使你能够通过反射机制操作他们的底层对等体。


反射机制允许一个类使用另一个类,即使当前被编译的时候,后者还没根本不存在。然后有这种超能力是需要付出代价的:

  • 丧失了编译时候的类型检查的好处——包括异常检查。如果通过反射调用不存在或者不可访问的方法,运行时候就会失败。
  • 需要写非常笨拙的,冗长的代码——代码写的冗长,不易阅读
  • 性能问题——反射机制币普通的方法调用要慢很多


反射机制最初的思想也是为基于组建的应用创建工具而设计的,可能在设计中有使用到,但是对于普通的方法运行时不应该

使用反射机制调用。


必须在编译时无法获取类,但是编译时存在适当的接口或者超类,可以通过反射获取这个类。


简而言之,反射很强大的功能机制不能否认,对于特定复杂系统编程任务,反射机制很有用途,但是他也有很多缺点,

对于普通的方法调用,建议不采用反射机制,如果可能,可以使用反射实例化对象,对于方法的调用,我们使用已经

编译过的对象一致的接口或者超类

0 0