我读过一些关于java的面试问题,我在下面找到了。
曲。在应用程序中使用反射好吗?答:不,是 喜欢挑战应用程序的设计
我需要进一步澄清上面的答案,因为我了解到反射是Java的一个强大功能。
挑战设计是什么意思?
我们必须在应用程序中实际使用反射的场景是什么?
挑战设计意味着您可以:
- 使用反射访问类的私有成员。
- 您可以实例化那些不应该实例化的类,例如:您可以使用不打算实例化的反射来实例化
java.lang.System
。 - 以及 API 的原始程序员不希望您做的许多其他事情。或者你可以尽可能做你不应该做的事情。
尽管反射在某些情况下很有用:
- 就像使用
FXML
一样,解释器会动态加载FXML
文件并动态地为节点设置属性。 使用反射。 -
如果您曾经为 android 编程过,您必须知道程序员使用
.xml
文件设计其应用程序的view
。即使在这种情况下,您的小部件也会使用反射动态加载。在安卓中的基本示例:<Button ... android:onClick="callMe" />
然后,在.java
文件中编写 callMe(View view)
方法。此侦听器使用反射添加到按钮。
- 像Spring,Hibernate等框架也使用反射来处理它们。
因此,反思既有利也有弊。
您可能需要参考此内容以获取更多信息