groovy 接口

groovy 接口,第1张

概述1. [代码]用闭包来实现接口(1)     跳至 [1] [2] [3] [全屏预览] view source print ? 1 //如果接口只有一个方法,可以通过闭包,用下面的方式来实现: 2   3  // a readable puts chars into a CharBuffer and returns the count of chars added 4 def readable 1. [代码]用闭包来实现接口(1)     跳至 [1] [2] [3] [全屏预览] view source print ? @H_502_26@ 1 //如果接口只有一个方法,可以通过闭包,用下面的方式来实现: @H_502_26@2   @H_502_26@3  // a readable puts chars into a CharBuffer and returns the count of chars added 4 def readable = { it.put("12 34".reverse()); 5 as Readable @H_502_26@5   6 // the Scanner constructor can take a Readable @H_502_26@7 s = new Scanner(readable) 8 assert s.nextInt() == 43 2. [代码]用闭包来实现接口(方法2)      @H_502_26@01 你也可以用闭包来实现方法数多于一个的接口。当调用接口中的任何方法时,这个闭包都会被调用一次。 02 由于所有的方法都要复用这个闭包的参数表,因此典型的做法是用一个对象数组来作为底座容器。 @H_502_26@03 这种做法也可以用于任何Groovy的闭包,并且会把所有的参数都放在这个数组中。例如: 04 05  interface X 06 { voID f(); g(int n); h(String s, n); } @H_502_26@07 08 x = {Object[] args -> println "method called with $args"X @H_502_26@09 x.f() 10 x.g(1) @H_502_26@11 x.h("hello",2) 3. [代码]用Map 来实现接口(方法1)      impl = [   i: 10hasNext: { impl.i > 0 }, next: { impl.i-- },monospace!important; Font-size:10pt!important; min-height:inherit!important">] iter = impl Iterator @H_502_26@while ( iter.hasNext() )   println iter.next() @H_502_26@//上面的例子只是一个故意设计的示例,但却展示了这个概念。 //你可以仅仅实现那些真正被调用的方法,但如果你调用了一个Map 中未实现的方法时,将会抛出异常NullPointerException ,如: 12 13 14 15 16 x = [ f: {"f called"} ] 17 18 //x.g()    // NPE here 总结

以上是内存溢出为你收集整理的groovy 接口全部内容,希望文章能够帮你解决groovy 接口所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1265539.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存