当前位置:首页 » 编程博文
开发技术指南» 文章正文
    引言: 我们知道,在很多脚本语言中都有eval涵数,它可以把字符串转换为
 

 

 ·如何实现开关cd-rom    »显示摘要«
    摘要:如何实现开关cd-rom 对cd-rom的操作,可通过mcisendcommand函数实现。 下面是用vc实现的代码: // 设备id dword wdevid; // 打开设备参数 mci_open_parms mciom; // 将设备名称设为cd_rom mciom.lpstrdevicetype = "cdaudio"; // 将此设备打开 if( mcisendcom......
    摘要:面向对象的设计的目的之一,就是把责任进行划分,以分派给不同的对象。我们推荐这种划分责任的作法, 是因为它和封装(encapsulation)和分派(delegation)的精神是相符合的。创立性模式把对象的创立过程封装起来,使得创立实例的责任与使用实例的责任分割开, 并由专门的模块分管实例的创立,而系统在宏观上不再依赖于对象创立过程的细节。 全文阅读:java语言简单工厂创立性模式介绍 ......


在java中利用动态编译实现eval
我们知道,在很多脚本语言中都有eval涵数,它可以把字符串转换为表态式并执行.如在javascript中

【程序编程相关:java:欲练此功,必先自宫!

【推荐阅读:一份开发文档

var str = aid.value + ".style.top = 10;" 【扩展信息:Windows 2000 密码破解

把一个id为"aid"的控制的值取出来加合并成一个字符串,如果aid的值是"axman",则

str = "axman.style.top = 10"

现在我们要让控制axman移动到顶部为10的位置:

eval(str);

这样这个字符串就变成了表达式或语句开始执行.这样的功能对于动态构造变量是有非常重要的

意义.

那么在java中,如果实现这个功能呢?其实我们可以用动态编译来实现:

假设有一组方法实现不同的功能,现在要根据传进来的方法名调用相应的方法,假如没有eval功能,我们

只能这么做:

myclass mc = new myclass();

if(str.equals("m1"))

   mc.m1();

else if(str.equals("m1"))

   mc.m2();

else if(str.equals("m3"))

   mc.m3();

else if(.........)

   .........();

如果有一百种情况呢?

如果我们用eval方法就可以直接这样:


...   下一页
 ·探索ntfs    »显示摘要«
    摘要: 探索ntfs 探索ntfs webcrazy(tsu00@263.net) ntfs是windows nt引入的新型文件系统,它具有许多新特性。本文旨在探索ntfs的底层结构,所叙述的也仅是文件在ntfs卷上的分布。ntfs中,卷中所有存放的数据均在一个叫$mft的文件中,叫主文件表(master file table)。而$mft则由文件记录(file reco......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE