Groovy: 把方法變成閉包

[size=x-large]Groovy: 把方法變成閉包[/size]

在Groovy裏閉包是個很有用的工具。例如我們可以把閉包作爲方法的參數,在方法內部執行這個閉包。我們可以用Groovy的語法創建閉包,也可以通過.&運算符直接把Java或Groovy方法直接當作閉包來使用。

我們有一個簡單的類:


public class JavaObject {
public static void javaSays(final String s) {
System.out.println("Java says: Hello " + s + "!");
}
}


在下面的腳本中我們使用這個Java類,並把javaSays方法轉換成閉包:


// 一個簡單的List
def names = ['groovy', 'grails', 'mrhaki']

// 直接使用閉包
names.each { println 'Normal closure says: Hello ' + it + '!' }

// 把Groovy方法轉換爲閉包
def groovySays(s) {
"Groovy says: Hello ${s}!"
}
// 使用.& 語法把方法轉換爲閉包.
names.each(this.&groovySays)

// 把Java方法轉換爲閉包
def javaSays = JavaObject.&javaSays
names.each javaSays
發佈了15 篇原創文章 · 獲贊 2 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章