前些天我们谈到Groovy闭包的强大特性,而今天我们来谈谈一个相对比较轻松的话题——Groovy中的接口可以怎么来实现。
通俗的类似Java的实现我们就不在此赘述。
接下来我们一一来看:
1.用闭包来实现单方法接口:
interface Test{
def one(String a)
}
def test = {it.concat('b')} as Test
assert test.one('a') == 'ab'
这里我们用闭包实现了一个含有单个方法的接口接口中的it表示方法参数a。然后对a执行concat方法。as Test是闭包实现接口的一种实现形式。
2.用闭包来实现多方法接口:
interface X{void f();void g(int n);void h(String s, int n);}
x = {Object[] args -> println "method called with $args"} as X
x.f()
x.g(1)
x.h("hello", 2)
这里我们先定义了一个多方法的接口。和1中类似的args是X接口中每个方法的方法参数集合。
3.用map来实现多方法接口:
impl = [
i: 10,
hasNext: { impl.i>0 },
next: { impl.i-- }
]
iter= impl as Iterator
while(iter.hasNext()) println iter.next()
用map来实现多方法的接口,是一种更通用的做法。
4.只实现需要的接口方法。
interface X
{ void f(); void g(int n); void h(String s, int n); }
x = [ f: {println "f called"} ] as X
x.f()
//x.g() // NPE here
对于map实现的多方法的接口。我们仅需要对需要实现的方法,在map中进行声明即可。对于没有声明的方法,如果调用的话。会出现异常。
分享到:
相关推荐
0,下载Grails( http://dist.codehaus.org/grails/grails-bin-0.4.2.zip ,请留意朝花夕拾——Groovy & Grails中的“最新版本”提示)并解压到自己指定位置(我的位置是D:\D\MY_DEV\grails) 1,设置环境变量GRAILS...
groovy基础语法.pdf
groovy基础语法.doc,学习groovy入门级资料
groovy基础教程源码,很全面tjureykjetyukmjyteytdeyhnjfgnjsfdghfdxhgsffgv bnvbn
groovy脚本实现对数据库的增删改查,groovy脚本不需要编译,十分实用
Java中使用Groovy的三种方式,详细见我的博客。
通过groovy自定义函数实现提取明细表字段至主表字段,同时根据表单上的字段进行计算,将计算结果在字段上显示;致远、groovy
NULL 博文链接:https://key232323.iteye.com/blog/1336400
groovy 一个不错的文档 实现dsl
groovy环境的mock工具,用于辅助单元测试.
Groovy 正则表达式 Groovy正则表达式语法 背景项目使用Gradle作为自动化构建的工具, 闲暇之余对这个工具的使用方式以及其配置文件依赖的Groov
在groovy中实现DSL领域特定语言的技术。 版权声明: 本系列文章是从原著《Groovy For Domain-Specific Languages》(原作者: Fergal Dearle)中翻译而来,从中加入了一些本人自己的读书笔记和理解。本系列文章不为...
Groovy语言。 里面详细介绍了一些很有意思的方法。
Java 开发 2_0 通过 CouchDB 和 Groovy 的 RESTClient 实现 REST
SoapUI插件实现import groovy功能
赠送jar包:groovy-3.0.9.jar; 赠送原API文档:groovy-3.0.9-javadoc.jar; 赠送源代码:groovy-3.0.9-sources.jar; 赠送Maven依赖信息文件:groovy-3.0.9.pom; 包含翻译后的API文档:groovy-3.0.9-javadoc-API...
apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本,希望大家多多下载,apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本,希望大家多多下载,apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本,希望...
SoapUI插件实现import groovy功能 V2 http://blog.csdn.net/wwwqjpcom/article/details/51592896 更新的地方主要是不再在java.io.tmpdir目录下产生临时groovy文件
Groovy 是 JVM 的一个替代语言 — 替代 是指可以用 Groovy 在 Java 平台上进行 Java 编程,使用方式基本与使用 Java 代码的方式相同。在编写新应用程序时,Groovy 代码能够与 Java 代码很好地结合,也能用于扩展现有...
groovy入门经典,groovyeclipse 插件