您的位置:逆风者 易飞扬 正文
 添加时间:2007-09-27 原文发表:2007-09-27 人气:60 来源:易飞扬官方博客

我们在不同的场合用不同的方式阐述过,“易语言.飞扬”具有非常完善的类型反射机制。

看一下反射类库(反射.ncl)提供了哪些功能,就大致可以了解“易语言.飞扬”的类型反射机制。

逆风编程技术
强调一点:是因为有了完善的类型反射机制,才会产生反射类库;而不是因为反射类库的存在,才使“易语言.飞扬”有了完善的类型反射机制。反射类库是结果之一,是表现形式之一。

 

反射类库主要提供两大方面的功能:1、获取指定类库或类型的详细定义信息;2、获取运行时对象信息。

借助于第1点,可以依据编译后的类库(*.ecl, *.ncl)生成类似于JavaDoc的API文档,也就是说,源代码中的几乎所有定义信息,在编译之后,依然可以反射出来。

*.ecl大致相当于Java中的*.jar,*.ncl大致相当于Java中的本地库(请参考JNI)。JavaDoc是从Java源代码中提取API文档(http://java.sun.com/javase/6/docs/api/),而EFDoc是从编译后的类库中提取API文档(http://www.dotef.cn/docs/api/),这是两者的不同之处。

不能反射得到“易语言.飞扬”源代码,因为编译之后,生成的是机器指令,不是字节码。

通过第2点,我们可以在程序运行时,创建对象,调用对象的指定方法,读取或修改对象的属性值和成员值,等等。

 

反射类库的这两大方面功能,目前来说,第1点已经实现的比较完整了,第2点还有待继承完善。

近期刚刚增加了“读取或修改对象的属性值和成员值”功能。

“创建对象”“调用对象的指定方法”是在1.1.0测试版中已经实现了的功能。(“创建对象”严格来说不属于反射类库的功能,此功能由“易语言.飞扬”运行环境提供。)

“调用对象的指定方法”还只能调用对象的普通方法,不能调用具有多返回值的方法,也不能调用具有扩展参数的方法。这也是需要进一步完善的地方之一。

相关文章

易语言飞扬专区开放,期待您的参与
IDE中的可视化界面设计器
易语言飞扬十分钟入门教程
易语言飞扬集成开发环境简明使用手册
易语言飞扬集成开发环境 EFIDE 0.1.0 Beta版
“祖国,您好!”例程
从“控制台.输出行()”的变迁看“易语言.飞
《易飞扬面向对象编程》第2版
apr库生成随机数
从简单的窗口程序研究出的阶段性成果
自制曲线图,柱状图控件

相关评论


本文章所属分类:首页 易飞扬

  热门关键字: