首页 > 解决方案 > Java 反射:运行时修改意味着什么?

问题描述

我正在学习 Java 反射 API。我已经阅读了很多,使用java.lang.reflect包。但是我仍然不明白:通过内省,您可以在运行时修改对象的想法。

基本上你不需要内省/反思来做到这一点。使用简单的 setter() 方法,您还可以在运行时修改对象。使用简单的设置器或使用反射有什么区别?在这两种情况下,您都可以获得相同的结果。

标签: javareflectionintrospection

解决方案


通过反射,您可以实例化对象并调用编译时不知道的方法。

假设您有一个包含类名的文本文件。您可以使用反射来加载和实例化该类,即使在编译程序时该文件不存在。

同样,您可以使用它来构建诸如通用配置系统之类的东西,您可以在其中创建对象并根据一些配置文件设置属性,而不是使用硬编码调用(Spring 是可以采用的一种方式)。


推荐阅读