java程序員爲何使用Groovy

     一直據說java世界裏有個Groovy,可是一直沒時間去了解它到底是一個怎麼樣子的。咱們如今的項目裏放了不少開源包,並且項目中作流程的時候,規則就是用Groovy實現的。近來閒來無事,因而開始認真的看看Groory究竟有什麼好的。其實最初我接觸它是由於Grails這一個框架,這兩個都是爲了實現一個目的,java的敏捷開發,與java的無縫對接。在某些狀況下,java須要半天處理的事情,Groovy只須要幾分鐘,是的,幾分鐘…剩下來的時間,程序員終於有時間泡妹子了,^_^…….技術宅的兄弟,趕忙來看看吧。 javascript

     腳本語言,動態語言?難道是javascript一類的?好吧,它的確和javascript有一點像,可是它太強大了,遠遠超出了javascript能處理的事情。這裏不和javascript作比較了,直接來和Java比較吧,看看Groovy能作什麼。 html

Groovy 的網站( http://groovy.codehaus.org ) 給出了 groovy 的最好定義: groovy 是在 java平臺上的、 具備象 Python , Ruby 和 Smalltalk 語言特性的靈活動態語言, groovy 保證了這些特性象 java 語法同樣被 java 開發者使用。 並且學習Groovy對javaer來講,是很容易的一件事情。若是你尚未開始學Ruby,來吧,和我一塊兒來Groovying一下…………並且附帶一個Grails來媲美Ruby on rails。 java

 

   1.Groovy能夠兼容java。 程序員

   是的,你能夠用java語法來編寫groovy,最後還能夠生成class文件,直接用java調用。你會說,這有什麼好的,不就是改了個後綴名麼?嘔,也許吧…可是它的亮點固然不是這個,它的亮點是你能夠在Groovy裏面直接用java語法混搭寫,固然不是很推薦這樣作的。 閉包

2.Groovy是動態的。 框架

不須要java的反射,不須要冗長的代碼,不須要各類try catch 異常,你就能夠實現各類神奇的事情。Groovy的class能夠這樣新增一個方法,或者調用它。 函數

//用閉包定義一個方法 var1爲參數 ,->後面是執行語句(固然參數不是必須的)
def methodA={var1-> print "this is methodA"} 

//用閉包定義一個方法 var1爲參數 ,->後面是執行語句(固然參數不是必須的)
def methodB={var1-> print "this is  methodB"}

String.metaClass.addMethodA=methodA;   //將methodA綁定爲成員方法。
String.metaClass.'static'.addMethodB=methodB;   //將methodB綁定爲靜態方法

String s="str"; 
s.addMethodA('good');  //實例調用方法A 
String.addMethodB('hello'); //靜態類調用方法B

以上的代碼將兩個方法添加到了String class裏面(天哪,final的String 也被攻破了),而後分別用實例對象調用addMethodA,靜態類調用AddMethodB. 工具

3.Groovy是一把瑞士軍刀。 學習

java是一把基礎工具,等你須要的時候,你須要處處去找jar包,來填充本身的程序,並且你須要看API去弄懂各類使用。此外,java的編寫實在是太冗長了,爲了打印一個HelloWorld,你須要編寫class, 寫一個main函數。對於Groovy來講:print 「hello world!」.這一句就足夠了,這只是開始… 網站

經過 groovy 你能快速的打開控制檯, 經過輸入以下代碼來輸出全部的文件名 ( 遞歸處理 ) :

groovy -e "new File('.').eachFileRecurse { println it }"


即便 java 有一個名稱爲 eachFileRecurse 的方法和一個 FileListener 的接口,你仍舊須要顯示的建立一個類, 聲明一個 main 方法, 保存源代碼到一個文件中, 而且編譯它, 而後你才能運行它, 基於比較, 咱們來看看 java 作相同工做的代碼, 咱們假設存在單獨的 eachFileRecurse 方法:

public class ListFiles { // JAVA !!

public static void main(String[] args) {

 new java.io.File(".").eachFileRecurse( // 假設 java 存在該方法

 new FileListener() {

    public void onFile (File file) {
         System.out.println(file.toString()); 
        } 
    } 
); 
}

 

好吧,下載一本好書《Groovy in Action[文字版][中文].pdf》,如今開始學習Groovy吧。

http://ishare.iask.sina.com.cn/f/22738137.html?from=like  翻譯者但願咱們給他捐點錢,呵呵,你們若是以爲確實不錯,就不要太吝嗇了。

相關文章
相關標籤/搜索