除了逆向工程之外,反射是否真的有用?

Zac*_*ner 0 reflection

Java和PHP等语言支持反射,允许对象提供有关自身的元数据.是否存在任何合法的用例,您需要能够执行某些操作,例如询问对象在逆向工程领域之外还有哪些方法?这些用例是否实际在今天实施?

Mar*_*ers 5

反射在Java中被框架广泛使用,这些框架在运行时被利用以动态地与其他代码一起操作.如果没有反射,代码之间的所有链接必须在编译时完成(静态).

因此,例如,任何有用的插件框架(OSGi,JSPF,JPF)都会利用Reflection.任何注入框架(Spring,Guice等)都利用了Reflection.

任何时候你想要编写一段代码来与另一段代码进行交互而不需要在编译时提供那段代码,那么Reflection就是Java的前进方向.

但是,最好留给框架,并且应该封装.