用Groovy思考第一章用Groovy簡化Java程式碼
版權宣告:本文為博主chszs的原創文章,未經博主允許不得轉載。 https://blog.csdn.net/chszs/article/details/8757961
用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%in。
要驗證以上安裝是否正確,在命令列方式,執行:
>groovy -v
Groovy 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 name
String note
public 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 name
String 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語言的關鍵特徵。
相關文章
- 用Groovy讀取本地檔案的程式碼
- java中呼叫groovy指令碼Java指令碼
- Groovy探索 使用集合方法,寫出更加Groovy風格的程式碼
- [Groovy]Groovy指令碼的5種執行方式指令碼
- groovy 程式語言簡單介紹
- Groovy 簡單入門
- Groovy + Java 混合程式設計方案:GMavenJava程式設計Maven
- groovy
- Java和groovy相互呼叫Java
- Groovy探索之Gpath和List的結合 更加Groovy風格的程式碼
- Groovy簡單公式計算公式
- Java動態指令碼Groovy,高階啊!Java指令碼
- JAVA與groovy指令碼的結合使用Java指令碼
- 提高Groovy品質 Groovy 1.5.2釋出
- Groovy and SoapUIUI
- Groovy 2.0.6和Groovy 2.1 beta版本釋出
- Java執行groovy指令碼的兩種方式Java指令碼
- groovy安裝
- Java動態指令碼Groovy讀取配置檔案Java指令碼
- Java之外選擇Scala還是Groovy?Java
- Groovy 2與Java的效能對比Java
- Groovy初學者指南
- Groovy閉包理解
- Groovy動態解析
- Parse CSV file with Groovy
- groovy : 隨機數隨機
- Groovy 2.0釋出
- Groovy 2.0.4 釋出
- Groovy核心類原始碼講解(上)原始碼
- groovy之動態指令碼的使用指令碼
- IDEA 利用groovy指令碼生成註釋Idea指令碼
- groovy之範圍特性
- groovy與javah互相呼叫Java
- Groovy探索 Visitor模式模式
- spring+groovy實現動態程式碼注入執行Spring
- Groovy高效程式設計——‘匕首方法’的使用程式設計
- groovy-gradle-task(二)Gradle
- Groovy 語言快速入門