反射实践 - 编程入门网
反射实践时间:2011-08-09 Albert Attard您是否考虑过这些问题: IDE 如何列出类的所有详细信息,包括私有字段和私有方法? IDE 还能够 列出 JAR 文件中的类(及其详细信息),它们是如何做到的? 下面是反射的一些例子。 本文将阐述如何在编程中应用反射,以及如何在高级抽象中应用反射。我们将从一个十分简单的例子 入手,然后创建一个简单的程序来使用反射。 什么是反射? 反射是一种机制,它允许动态地发现和绑定类、方法、字段,以及由语言组成的所有其他元素。列出 类、字段和方法只是反射的基本应用。通过反射,我们实际上还能够在需要时创建实例、调用方法以及访 问字段。 大多数程序员曾使用过动态类载入技术来载入他们的 JDBC 驱动程序。这种载入方法类似于下面这一 段动态载入 MySQL JDBC 驱动程序实例的代码片段:
使用反射的原因和时机 反射提供了一个高级别的抽象。换句话说,反射允许我们在运行时对手头上的对象进行检查并进行相 应的操作。例如,如果您必须在多种对象上执行相同的任务,如搜索某个实例。则可以为每种不同的对象 编写一些代码,也可以使用反射。或许您已经意识到了,反射可以减少近似代码的维护量。因为使用了反 射,您的实例搜索代码将会对其他类起作用。我们稍后会谈到这个示例。我已经将它加入到这篇文章里, 以便向您展示我们如何从反射中获益。 动态发现 下面我们从发现一个类的内容并列出它的构造、字段、方法开始。这并不实用,但它能让我们直观地 了解反射 API 的原理及其他内容。 创建 Product 类,如下所示。我们的所有示例都保存在名为 ria 的程序包中。
反射实践(2)时间:2011-08-09 Albert Attard创建好 Product 类后,我们下面继续创建第二个类,名为 ReflectionUtil,它将列出第一个类的 (Product) 详细信息。或许您已经预料到了,这个类会包含一些实用的方法,这些方法将执行这个应用程 序中所需的所有反射功能。目前,这个类将只包含一个方法 describeInstance(Object),它具有一个类 型为 Object 的参数。 下面的清单中演示了 ReflectionUtil 类的代码。
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |