有一些很棒的文章,例如this one关于反思。
我想知道的是真实世界的例子,它是使用它和现实世界的原因或什么时候有用,为什么在原始“你可以得到类型信息”之外......我在本文和其他文章中得到了所有这些。
好的,那么,在实际编程情况下,它对我的实际情况并没有真正帮助。我正在试图弄清楚人们如何在应用程序中使用它,很好的例子,当你想要使用它时,它们只是用来让我的脑袋缠身。
答案 0 :(得分:3)
反射对运行时插件很有用。当你创建一个可以通过插件扩展的程序时,根据定义你不知道编译时类和方法是什么,所以你使用反射在运行时加载库然后调用适当的方法。 / p>
答案 1 :(得分:1)
当您处理序列化时,反射也很有用。
就在最近,我不得不写一些非常自定义的序列化代码来与第三方服务交谈,这意味着使用反射来查找属性,并根据属性确定属性是否符合序列化条件。
答案 2 :(得分:1)
在Java中,反射的一个很好的现实生活示例是Spring's Inversion of Control (IoC) framework,您可以使用XML配置连接bean。
答案 3 :(得分:1)
正如Mehrdad所指出的,运行时插件是使用反射的地方之一。一个很好的例子是JDBC API。您使用反射按名称加载驱动程序类;这是唯一的方法,因为JVM无法知道自己加载哪个类。
反射有用的另一种情况是应该运行任意代码的应用程序框架。例子:
另一个是持久性框架,它可以加载/保存任意类实例(例如Hibernate)。