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

Java 反射如何影响应用程序的设计,java,reflection,Java,Reflection,我已经阅读了一些关于java的采访问题,我发现如下 库斯。在应用程序中使用反射好吗?答:不,是的 比如挑战应用程序的设计 我需要进一步澄清上述答案,因为我了解到反射是Java的一个强大功能 挑战设计意味着什么 我们必须在应用程序中实际使用反射的场景是什么?挑战设计意味着您可以: 使用反射访问类的私有成员 您可以实例化那些不应该实例化的类,例如:您可以使用您不打算使用的反射来实例化java.lang.System 还有很多API的原始程序员不希望您做的事情。或者你可以尽可能地做你不应该做的事情 虽

我已经阅读了一些关于java的采访问题,我发现如下

库斯。在应用程序中使用反射好吗?答:不,是的 比如挑战应用程序的设计

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

挑战设计意味着什么


我们必须在应用程序中实际使用反射的场景是什么?

挑战设计意味着您可以:

  • 使用反射访问类的私有成员
  • 您可以实例化那些不应该实例化的类,例如:您可以使用您不打算使用的反射来实例化
    java.lang.System
  • 还有很多API的原始程序员不希望您做的事情。或者你可以尽可能地做你不应该做的事情 虽然反射在某些情况下很有用:

  • 与使用
    FXML
    时一样,解释器动态加载
    FXML
    文件,并动态设置节点的属性。使用反射
  • 如果您曾经为android编程过,您必须知道程序员使用
    .xml
    文件设计应用程序的
    视图。即使在这种情况下,您的小部件也是使用反射动态加载的。基本示例,在android中:

    <Button  ...
         android:onClick="callMe" />    
    
    
    
  • 然后在
    .java
    文件中编写
    callMe(View-View)
    方法。此侦听器使用反射添加到按钮

  • Spring、Hibernate等框架也使用反射进行处理 因此,反思既有好处也有坏处


    您可能想参考更多信息

    如果没有那么好,那么您应该避免使用Spring、Hibernate、MyBatis等框架…这些框架是否以另一种方式解决了反射实现的功能?让我看看:在运行时使用特定构造函数,在运行时动态注入字段,在运行时执行类的方法,动态创建代理类,这些代理类实现/扩展特定接口/类,该接口/类将在运行时包装您的直接类。。。我猜他们经常使用反射。是的。其实我也不同意这个答案。我只想澄清一下。@LuiggiMendoza-自己使用反射和使用使用反射的框架之间有很大的区别。