反射作为java语言非常重要的特性之一,在开发的过程中可以为我们提供极大的便利。在J2EE中,java反射得到了大量的应用,尤其是在一些主流框架中,如Spring中反射就发挥了极大的作用。那将java作为开发语言的Android,我们能否利用java反射这一重要特性,帮助我们更加灵活、高效的进行开发呢?答案是肯定的。
我们先来了解一下反射(Reflection)到底是什么?
官方一点的解释:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
个人认为反射的精髓在于两个字—动态。我们在实际编程解决问题的时候,往往会遇到这种情况,就是程序运行的时候应该去实例化哪个类,只有在运行时才知道,因此不能够在编译阶段就做出决定。Java反射就可以帮助我们在运行时决定应该实例化哪个类。因此,java反射的强大就在于它能够在程序运行时实例化对象,这是同我们平时用new实例化对象最根本的区别。
说了这么多,对于反射可能还是会感到有些模糊,一般java初学者都会对反射感到难于理解。遇到这种情况,最好的方法就是在实际项目中去利用它,在实战中理解反射的强大,感受它带给我们的便利。说实话笔者在写这篇博客之前对于反射的理解也是非常表面的,直到最近review之前写的Android项目,发现当年的