java反射机制有什么用?

Java语言有着一个非常突出的动态相关机制:Reflection。这个字的意思是“反射、映象、倒影”,用在Java身上指的是我们可以于运行时加载、探知、使用编译期间完全未知的classes。换句话说,Java程序可以加载一个运行时才得知名称的class,获悉其完整构造,并生成其对象实体、或对其fields设值、或唤起其methods。这种“看透class”的能力(the ability of the program to examine itself)被称为introspection(内省、内观、反省)。Reflection和introspection是常被并提的两个术语。

java反射机制有什么用?

在Java环境中,反射机制允许程序在执行时获取某个类自身的定义信息,例如属性和方法等。也可以实现动态创建类的对象、变更属性的内容或执行特定的方法的功能。从而使Java具有动态语言的特性,增强了程序的灵活性和可移植性。

Java反射机制主要用于实现以下功能,看完以下几点相信你会对java反射机制有什么用有清晰的了解。

  • 在运行时判断任意一个对象所属的类型。
  • 在运行时构造任意一个类的对象。
  • 在运行时判断任意一个类所具有的成员变量和方法。
  • 在运行时调用任意一个对象的方法,甚至可以调用private方法。
  • 生成动态代理。

注意:上述功能都是在运行时环境中,而不是在编译时环境中。

代码示例

性能损耗

反射在性能方面会有一定的损耗,用于字段和方法接入时反射要远慢于直接写代码。如果它作为程序运行中相对很少涉及的部分将不会造成影响,因为即使测试最坏情况下的计时图显示的反射操作也只耗用几微秒。

0

发表评论

邮箱地址不会被公开。