我已经阅读了一些关于 java 的面试问题,我在下面找到了。
Qus. Is It Good to use Reflection in an application ? Ans. No, It's like challenging the design of application
我需要进一步澄清上述答案,因为我了解到反射是 Java 的一项强大功能。
挑战设计是什么意思?
我们必须在什么情况下在应用程序中实际使用反射?
最佳答案
挑战设计意味着您可以:
- 使用反射访问类的私有(private)成员。
- 您可以实例化那些您不应该实例化的类,例如:您可以实例化
java.lang.System
使用您不打算实例化的反射。 - 以及 API 的原始程序员不希望您做的许多其他事情。或者你可以做一些你不应该做的事情。
尽管反射在某些情况下很有用:
- 就像使用
FXML
时一样,您的解释器会动态加载FXML
文件并为您的节点动态设置属性。使用反射。 如果您曾经为 android 编程,您一定知道程序员使用
.xml
文件设计他们应用程序的view
。即使在这种情况下,您的小部件也会使用反射动态加载。基本示例,在 android 中:<Button ... android:onClick="callMe" />
然后你在.java
文件中编写callMe(View view)
方法。使用反射将此监听器添加到按钮。
- Spring、Hibernate 等框架也使用反射进行处理。
所以反射(reflection)有利也有弊。
您可能需要引用 this了解更多信息
关于java - 反射如何影响应用程序的设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30950994/