2015-06-20 49 views
2

我已阅读了一些关于java的面试问题,我在下面找到。反射如何影响应用程序的设计

Qus。在应用程序中使用反射是否好?答。不,这是 像挑战应用程序的设计

我需要澄清上述答案更多,因为我学习反射是Java的一个强大的功能。

什么意思是挑战设计?

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

+0

如果它不是那么好,那么你应该避免使用像Spring,Hibernate的设计时,MyBatis和许多其他框架... –

+0

做这些框架应对实现什么用另一种方式反思? – Harshana

+0

让我看看:在运行时使用特定的构造函数**,在运行时动态注入字段**,在运行时执行类**的方法**,创建实现/扩展特定接口的代理类/类将包装你的直接类**在运行时** ...我想他们使用反射了很多。 –

回答

1

挑战的设计意味着您可以:使用反射类的

  1. 访问私有成员。
  2. 您可以实例化那些您不应该使用的类,例如:您可以使用您不打算使用的反射来实例化java.lang.System
  3. 还有许多API的原程序员不想让你的东西。或者你可以做尽可能不应该做的事情。

虽然反射是在某些情况下非常有用:使用FXML

  1. 一样,你的解释动态加载FXML文件,并设置动态属性的节点。使用反射。
  2. 如果您曾经为android编程,您必须知道程序员使用.xml文件设计了其应用程序的view。即使在这种情况下,您的小部件也会使用反射动态加载。基本例如,在安卓

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

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

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

所以有反思的优点和缺点。

您可能要参考this了解更多信息

相关问题