java - 反射如何影响应用程序的设计

标签 java reflection

我已经阅读了一些关于 java 的面试问题,我在下面找到了。

Qus. Is It Good to use Reflection in an application ? Ans. No, It's like challenging the design of application

我需要进一步澄清上述答案,因为我了解到反射是 Java 的一项强大功能。

挑战设计是什么意思?

我们必须在什么情况下在应用程序中实际使用反射?

最佳答案

挑战设计意味着您可以:

  1. 使用反射访问类的私有(private)成员。
  2. 您可以实例化那些您不应该实例化的类,例如:您可以实例化 java.lang.System 使用您不打算实例化的反射。
  3. 以及 API 的原始程序员不希望您做的许多其他事情。或者你可以做一些你不应该做的事情。

尽管反射在某些情况下很有用:

  1. 就像使用FXML 时一样,您的解释器会动态加载FXML 文件并为您的节点动态设置属性。使用反射。
  2. 如果您曾经为 android 编程,您一定知道程序员使用 .xml 文件设计他们应用程序的 view。即使在这种情况下,您的小部件也会使用反射动态加载。基本示例,在 android 中:

    <Button  ...
         android:onClick="callMe" />    
    

然后你在.java文件中编写callMe(View view)方法。使用反射将此监听器添加到按钮。

  1. Spring、Hibernate 等框架也使用反射进行处理。

所以反射(reflection)有利也有弊。

您可能需要引用 this了解更多信息

关于java - 反射如何影响应用程序的设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30950994/

相关文章:

c# - 有没有一种方法可以迭代并反射(reflect)枚举中包含的成员名称和值?

Javafx 将 Tab X 从 url 更改为图像图标

java - 我可以将参数传递给 GWT 模块构造函数吗?

java - 数组列表不会输出。 Java小程序

java - 是否可以在运行时访问 Java 8 类型信息?

c# - 查找方法的实例

java - 如何创建CXFServlet?

java - 使用 Apache Commons VFS 通过 FTP URI 导航到根目录

c# - 当你只知道通用基类的类型时,如何找到通用基类的派生类?

php - 如何获取原生 PHP 类构造函数的类型提示