初看起来这似乎不是个限制,但是假设你获取了一个指向某个并不在你的程序空间中的对象的引用;事实上,在编译时你的程序根本没法获知这个对象所属的类。例如,假设你从磁盘文件,或者网络连接中获取了一串字节,并且你被告知这些字节代表了一个类。既然这个类在编译器为你的程序生成代码之后很久才会出现,那么怎样才能使用这样的类呢? 在传统的编译环境中不太可能出现这种情况。但当我们置身于更大规模的编程世界中,在许多重要情况下就会发生上面的事情。首先就是“基于构建的编程”,在此种编程方式中,将使用某种基于快速应用开发(RAD)的应用构建工具,即集成开发环境(IDE),来构建项目。这是一种可视化编程方法,可以通过将代表不同组件的图标拖曳到表单中来创建程序。然后在编程时通过设置构建的属性值来配置它们。这种设计时的配置,要求构建都是可实例化的,并且要暴露其部分信息,以允许程序员读取和修改构建的属性。此外,处理图形化用户界面(GUI)事件的构建还必须暴露相关方法的信息,以使IDE能够帮助程序员覆盖这些处理事件的方法。反射提供了一种机制——用来检查可用的方法,并返回方法名。Java通过JavaBeans(第22章将详细介绍)提供了基于构建的编程架构。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)