用Groovy思考 第一章 用Groovy簡化Java代碼__Java

來源:互聯網
上載者:User
用Groovy思考  第一章 用Groovy簡化Java代碼

作者:chszs,轉載需註明。部落客頁:http://blog.csdn.net/chszs

1. Groovy的安裝目前Groovy的最新版本為2.1.2版,下載地址為: http://groovy.codehaus.org/Download

下載後解壓groovy-binary-2.1.2.zip到某個目錄,然後設定GROOVY_HOME環境變數指向Groovy的解壓目錄。

再設定PATH環境變數,添加%GROOVY_HOME%\bin。

要驗證以上安裝是否正確,在命令列方式,執行:

>groovy -vGroovy Version: 2.1.2 JVM: 1.7.0_09 Vendor: Oracle Corporation OS: Windows 7

表示Groovy安裝成功。

2. Groovy的第一個例子我們先寫一個Java類Todo.java,內容如下:
import java.util.List;import java.util.ArrayList;public class Todo{private String name;private String note;public Todo(){}public Todo(String name, String note){this.name = name;this.note = note;}public String getName(){return name;}public void setName(String name){this.name = name;}public String getNote(){return note;}public void setNote(String note){this.note = note;}public static void main(String[] args){List<Todo> todos = new ArrayList<Todo>();todos.add(new Todo("1", "one"));todos.add(new Todo("2", "two"));todos.add(new Todo("3", "three"));for(Todo todo : todos){System.out.println(todo.getName() + " " + todo.getNote());}}}

我們用javac編譯它,用java運行它,一切正常。現在,我們把Todo.java改名為Todo.groovy,然後執行:
> groovy Todo.groovy

我們會驚異地發現,與Java的執行結果一樣。

結論:Groovy是相容Java的。

運行Java持續有兩步:用javac編譯類檔案,然後用java在JVM上執行編譯後的位元組碼檔案。
而Groovy是在運行時編譯位元組碼檔案,在開發中節省了編譯這個步驟。


3. 用Groovy簡化Java代碼下面,我們用Groovy簡化JavaBean為GroovyBean。
import java.util.List;import java.util.ArrayList;public class Todo{String name;String note;public static void main(String[] args){List<Todo> todos = new ArrayList<Todo>();todos.add(new Todo(name:"1", note:"one"));todos.add(new Todo(name:"2", note:"two"));todos.add(new Todo(name:"3", note:"three"));for(Todo todo : todos){System.out.println(todo.name + " " + todo.note);}}}

執行結果仍然一樣。

可見,
1)省略了JavaBean的getter和setter方法;
2)預設情況,所有的類屬性都是public的;
3)建構函式很有特色,Map方式。

4. 用Groovy再進一步簡化代碼
public class Todo{String nameString notepublic static void main(String[] args){def todos = new ArrayList()todos.add(new Todo(name:"1", note:"one"))todos.add(new Todo(name:"2", note:"two"))todos.add(new Todo(name:"3", note:"three"))for(Todo todo : todos)println "${todo.name} ${todo.note}"}}

執行結果仍然一樣。
可見,
1)List和ArrayList省略了類型;
2)省略了分號;
3)列印語句省略了System.out。

5. 用Groovy再進一步省略main()函數
public class Todo{String nameString note}def todos = [new Todo(name:"1", note:"one"),new Todo(name:"2", note:"two"),new Todo(name:"3", note:"three")]todos.each{println "${it.name} ${it.note}"}

此代碼在groovyconsole控制台運行正常。

看了以上內容,你們對Groovy有什麼看法。下一節我們將介紹Groovy語言的關鍵特徵。


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.