java反射的使⽤场合和作⽤、及其优缺点
1)使⽤场合
在编译时根本⽆法知道该对象或类可能属于哪些类,程序只依靠运⾏时信息来发现该对象和类的真实信息。
2)主要作⽤
通过反射可以使程序代码访问装载到JVM 中的类的内部信息,获取已装载类的属性信息,获取已装载类的⽅法,获取已装载类的构造⽅法信息
3)反射的优点
反射提⾼了Java程序的灵活性和扩展性,降低耦合性,提⾼⾃适应能⼒。它允许程序创建和控制任何类的对象,⽆需提前硬编码⽬标类;反射是其它⼀些常⽤语⾔,如C、C++、Fortran 或者Pascal等都不具备的
java反射的作用及应用场景4) Java反射技术应⽤领域很⼴,如软件测试等;许多流⾏的开源框架例如Struts、Hibernate、Spring在实现过程中都采⽤了该技术
5)反射的缺点
性能问题:使⽤反射基本上是⼀种解释操作,⽤于字段和⽅法接⼊时要远慢于直接代码。因此Java反射机制主要应⽤在对灵活性和扩展性要求很⾼的系统框架上,普通程序不建议使⽤。
使⽤反射会模糊程序内部逻辑:程序⼈员希望在源代码中看到程序的逻辑,反射等绕过了源代码的技术,因⽽会带来维护问题。反射代码⽐相应的直接代码更复杂。