java - Java 反射:运行时修改意味着什么?
问题描述
我正在学习 Java 反射 API。我已经阅读了很多,使用java.lang.reflect
包。但是我仍然不明白:通过内省,您可以在运行时修改对象的想法。
基本上你不需要内省/反思来做到这一点。使用简单的 setter() 方法,您还可以在运行时修改对象。使用简单的设置器或使用反射有什么区别?在这两种情况下,您都可以获得相同的结果。
解决方案
通过反射,您可以实例化对象并调用编译时不知道的方法。
假设您有一个包含类名的文本文件。您可以使用反射来加载和实例化该类,即使在编译程序时该文件不存在。
同样,您可以使用它来构建诸如通用配置系统之类的东西,您可以在其中创建对象并根据一些配置文件设置属性,而不是使用硬编码调用(Spring 是可以采用的一种方式)。
推荐阅读
- azure - Azure REST API 为我返回 200,为其他用户返回 203
- android - 我如何在 React Native 中找到应用程序 ID
- amazon-s3 - 连接到 s3 存储桶时出现 Presto 错误 400
- javascript - Next.js - 如何在带有文字 onload 属性字符串值的内部添加标签?
- swift5 - Xcode 11.6 在导入自定义框架时出错:使用 Swift 5.3 编译的模块无法由 Swift 5.2.4 导入
- javascript - Javascript 中的数据传递问题 - Chrome 扩展
- oracle - 要查找的 Oracle DB 基本信息
- arduino - Arduino 串行比较
- javascript - 错误 [ERR_HTTP_HEADERS_SENT]:在将标头发送到客户端后无法设置标头 - 如何修复它
- php - 如何从 MySQL 数据库表中复制数据并使用它来更新另一个表