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