Unmi 学习 Groovy 之命名参数

Groovy 中提供了一个减少输入的特性叫做命名参数(Named Parameter)。GroovyBean 可以通过在构造器调用中传递冒号隔开的属性名称和值进行构建。如:

其实类似的用法早已有之,这有如 C++ 中的初始化成员列表,VB、Python、Transact-SQL 中的命名参数,JavaScript 中的 JSON  写法,Ruby 中提供的 syntax sugar用 hash 模拟所谓的 keyword argument。

我们先详细介绍 Groovy 的命名参数的用法与本质,然而再附上其他一些语言类似用法的实例,纵向贯通以加深印象。

要说从外部表现上好像是先调用了空构造方法,然后是相应的 setter 方法进行设值。因此,我们所直接想像的应该相当于下列 Java 代码 阅读全文 >>

Unmi 学习 Groovy 之闭包

一. 认识闭包

将代码块作为方法参数进行传递,这种机制就叫做闭包。闭包可以引用在创建闭包的范围中可见的变量。最近关于闭包的讨论也比较多,闭包能使语言更具灵动性,在动态脚本语言中较广泛的支持,如 Perl、Python、Ruby、JavaScript,还有我们的 Groovy。

有些语言能把函数作为参数传递,如 JavaScript 的回调函数,Python,甚至是 C++ 的函数指针。而 Java 在这方面又略逊一筹,需搬动一个匿名的内部类来实现类似的功能,内部类只能访问外部声明为 final 的变量。不过有呼声要在 Java SE 7 中增加闭包特性,让我们试目以待吧。

Groovy 这回大概是从 Ruby 那儿偷得闭包的语法。前面说这么多,其实你看到了就会发现,其实闭包很简单的,不信,请看: 阅读全文 >>

Unmi 学习 Groovy 之操作符重载

Java 相比于 C++ 语法来说去除了指针及显式内存释放,受到不少赞誉,的确避免很多的出错的可能性,提高了生产率。可是把操作符重载也拿掉了,也没了条件编译。这两项特性在 C# 是有的。操作符在 C++ 中似乎不是很好理解,它可以带来很大的灵活性,和操作的直观性。Java 大约想的是过宽的灵活性怕带来过度的滥用,在大型项目会有所不利。

因此由 Java 所衍生的 Groovy 脚本像 Perl、Python、Ruby 一样又有了操作符重载,脚本基于其应用领域需要更多的灵活性和自由度。

Groovy 中对操作的操作比起 C++ 中来说更简单,Groovy 中是把操作符映射到对应命名方法的调用,你只要重载了该命名方法便是重载了相应的操作符,比如说加号+ 映射到 plus(obj) 方法,你只要重载了 plus(obj) 即改变了加号+ 的形为。对于其他符号也是一样的。 阅读全文 >>

汇集 developerWorks 的《精通 Groovy》成 chm 文件,方便阅读

由于与 Java 渊源,所以还是打算把 Groovy 作比较细致的了解。还是在 IBM developerWorks 上找到一份初级的 Groovy 教程,名之曰《精通 Groovy》,实则一份入门教程。为大家阅读方便--免去了在线,还要一个 IBM ID 登陆后一页一页的翻,所以我把那些页面收集一下,制作成一个 CHM 文件,共享给大家。

原始教程地址在:https://www6.software.ibm.com/developerworks/cn/education/java/j-groovy/index.html

CHM 文件 Master Groovy.chm 下载地址:Master Groovy.chm.rar

得承认 Ruby 在动态脚本语言领域很有其过人之处,只是本人一直不怎么情愿接受它。现在好了,终于觅得了几乎能与 Ruby 相媲美的 Groovy,应该可让其在某些时候大显身手的。

一个顶好用的 JavaDoc Api 查看软件 JavaDOCHelper

一般我们查阅 JDK API 都是用的 CHM 版的帮助文件,记得想想刚接触 Java 那时要在网上找个 CHM 版的 JDK 帮助文档都要费几番周折,甚至还经常在线查某个 AP I说明。现在好了,连中文的 JDK API 帮助都能及时出来,要找个 CHM 版的帮助也方便多了。

可是对于大多数的 Java 组件都只提供 HTML 版的 JavaDoc API 帮助,查阅起来很不顺手。没有快速索引查找的功能,而且看不同组件的 API 帮助需要同时打开多个窗口。

下面向大家介绍一款软件,JavaDOCHelper,它不仅能提供像 CHM 文件那般快速索引查找,而且提供一个界面里查阅多个 Java Doc API。该软件未注册版本,只限 30 次的查找功能的使用(不是指索引),现已对该软件完成了破解,并提供更换安装目录时更方便的提示功能,以及免安装,EXE 文件无控制台方式启动。 阅读全文 >>

也写了一个手机号码归属地查询软件,晒一下

网上有许多版本的手机号码归属地查询软件,很多还收费的,好奇怪,有些还具有流氓习气。看不过,所以自己亲自动手写了一个来玩玩,最初选用过数据存储引擎是 HSql 和 Derby,因为他们有些弊端很明显,数据文件大、多文件支持、例如初始化时特慢、查询效率也不高、占有内存多、数据安全性不高,最后按定了 SQLite。

语言也是先用 Java 的 SWING 来实现的,后来觉得 Java 写的程序慢是一个方面,还要虚拟机才能玩得转,有碍于发布,所以选用了 VC 来写,它写出来的东西可方便,把用到的动态库和数据文件考到别的机器上就能运行,最后应用了一个皮肤美化一下。

本软件定名为:手机号码归属地查询(俗),英文名:Mobile Locator(名不符实),可查130-139及159段手机号码,数据我将会持续更新。绿色安装,不含任何恶意代码,解压执行 MobileLocator.exe 即可,运行时查询效率很高,占用内存不大,启动后 5M 疯狂点查询按钮最大占用内存也只是 7M,没有内存溢出。 阅读全文 >>

使用Java的反射调用方法应注意的异常处理

先看下面的代码,看看程序执行会是什么样的结果:

阅读全文 >>

Every day English(2005-11-17–2005-11-24)

2005-11-17

老外不说:

1)What time is convenient for you?(fault)  What time is good for you?(correct)/什么时间你有空?

2)I slept early.(fault)  I went to bed early./我睡得早。

词组:

1)go jogging/慢跑(不说"run") 阅读全文 >>

用JCoverage生成测试覆盖率报告(二 build文件)

下面的那一大段build.xml文件内容主要也是参考下载过来的JCoverage中的一个例子中的build文件,只是稍稍作了点修改,用下面这个build文件前,需要把JCoverage用到的 jar (下载的JCoverage中都有) 包拷到工程目录下lib子目录中,请注意理解其中的注解,以后必要时会加上更详细的中文注释。 阅读全文 >>

用JCoverage生成测试覆盖率报告(一 介绍)

JCoverage不是免费的(对商业不是免费,对open source是免费的 

JCoverage主页:http://www.jcoverage.com 

JCoverage的允许需要JUnit和Log4j、bcel、jakarta-oro、getopt类库,这些类库在下载的JCoverage中都包含了,JCoverage主要也是和Ant结合在一起使用, 

注意事项: 

1 : 初始化是最好删除当前目录下的jcoverage.ser文件,这个文件就是测试的结果,如果其在当前目录下找到这个文件将不会进行测试,或者重新测试 

2 : 在进行instrument时,一定要保证其class是debug模式下编译的,否则将不能注入jcoverage指令到被测试类的二进制文件中,建议从新用debug模式编译一个在当前目录 阅读全文 >>