专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅
package comimport groovy.swing.SwingBuilder import java.awt.BorderLayout //声明个SwingBuilderdef swing = SwingBuilder//计数器 count = 0//声明个labeldef textlabel//声明个framedef frame = swing.frame(title:'计数器', size:[300,300]) { borderLayout textlabel = label(text:"您还未点击,Come _disibledevent= "点击了${count}次"; [阅读全文] [PDF]
Groovy试图使Java开发者使用起来尽可能自然,在设计Groovy的时候遵循这样的原则,那就是尽可能减少Groovy的突兀之处。尤其是对那些有着Java开发基础的人,他们学习Groovy,当然希望Groovy与Java不要差别过大。下面我们说说Java和Groovy之间的主要的不同之处。 缺省引入的包 所有以下的这些包和类都是缺省引入的,也就是说不需要再特意使用import语句来引入它们。 ◆java.io.* ◆java.lang.* ◆java.math.BigDecimal ◆java.math.BigInteger ◆java.net.* ◆java.util.* [阅读全文] [PDF]
Expando类是Groovy语言中的一个相当有趣的类,它的作用类似于GroovyBean类,但比GroovyBean类更加灵活;同时,它还更类似于Map类,但也比Map类更加灵活。 我们先来看一个简单的例子: def e = new Expando() e.name = 'aa' println e.name e.age = 123 println e.age 运行结果为: aa 123 可以看到,e对象就像一个Map对象一样,可以任意的增加键值对,然后存储起来。也像一个动态的GroovyBean对象,它可以不用预先设定任何的属性,一切都可以在使用的时候增加。 [阅读全文] [PDF]
我们都知道,Groovy语言对集合做了很多的简化,如each、collect等等。但是,Groovy语言觉得这些还不够,它要继续给我们提供更多的简化操作。今天我们要谈到的“*.”,就是其中的一个。 “*.”操作符到底有什么用?我们还是从一个简单的例子谈起。 def list = ['abc','yyyy','1234467'] def sizes = list*.size() sizes.each{ println it } 打印的结果为: 3 4 7 通过上面的例子,我们可以知道,“*.&rdq [阅读全文] [PDF]
标签:groovy
在Java语言编程中,对对象的非空判断是一个永恒的话题。例如,我们经常需要对一个字符串进行如下的判断: if(str!=null&&!str.equals(\"\")) { ...... } 输入这样的语句的确使人生厌,而且有时候还会忘掉输入“!str.equals(\"\")”语句中的“!”导致代码出现逻辑错误。 而敏捷的Groovy语言开发就不需要我们担心这样的问题。同样的判断语句,我们只需要输入下面的代码: defstr=null if(str) { println\"strisnotnull\" } else { println’stris [阅读全文] [PDF]
Groovy探索之Delegate模式 二 鉴于Delegate模式在现在的编程中越来越重要,Groovy语言为它提供了一个帮助类来帮助我们创建委派类,这就是DelegatingMetaClass类。使用DelegatingMetaClass类,可以使得我们更加简单的实现Delegate模式。下面就来看看DelegatingMetaClass类是如何帮助我们实现Delegate模式的。还是接着上一篇的例子来说吧。我们已经有了一个Foo类,如下:class Foo { deftest() { println'have a test' } def [阅读全文] [PDF]
标签:groovy
对程序进行单元测试时,有时我们会遇到一些小麻烦,比如某些操作十分耗时,有些依赖的对象不易获取等等,这时我们就可以通过Groovy Mock或Groovy Stub来解决这些问题。Mock对方法调用的次数十分敏感,如果程序中调用的次数不在期望的调用次数范围内,则会抛出异常以致测试失败;而Stub仅仅是起到‘替身’的作用,它并不关心方法调用与否,即使方法一次都没被调用,也不会抛出异常导致测试失败。下面让我们来看一个实际的例子吧:import groovy.mock.interceptor.*class User { String name String address Strin [阅读全文] [PDF]
标签:groovy
Decorate模式是Java编程中比较常用的一种模式,有关Decorate模式的基本知识,如概念、使用场合以及如何使用,请大家查看相关文档。本文所要关注如何在Groovy语言中实现Decorate模式,以及这种实现与Java语言实现的区别,使得我们更加深入的理解Groovy语言的动态性,同时学会在Groovy语言中使用Decorate模式。说到Decorate模式,一个最最常用的例子是咖啡的例子。下面我们来看看在Java语言中怎么实现这个例子的。首先是一个接口,接口是Java语言面向对象的基础:publicinterface Coffee { publicvoid de [阅读全文] [PDF]
《Groovy探索之闭包》进入到第五篇,重点来讲讲闭包和模式的关系。我们知道,在Java界,设计模式是名声在外了。由于模式有很好的扩展性,我们通常很喜欢使用它们。但在Java语言中使用模式,我们最大的抱怨就是代码臃肿;由于过于对依赖进行过多的拆分,造成类个数成倍增加。一句话,扩展性虽然好,但编码的效率却低。比如说,我们在Java中常用到的Collections.sort(Collection collection,Comparator comparator)方法,就使用到了策略模式,所谓“策略模式”,就是对算法的封装。而Collections.sort(Collection collectio [阅读全文] [PDF]
1 共9条 分1页