開啟主選單

求真百科

Groovy程序設計

來自 孔夫子網 的圖片

Groovy程序設計》,[美] Venkat Subra 著,出版社: 人民郵電出版社。

人民郵電出版社,1953年10月成立,隸屬於中國工信出版傳媒集團,是工業和信息化部主管的大型專業出版社[1]。建社以來,人民郵電出版社圍繞「立足工信事業,面向現代社會,傳播科學知識,引領美好生活」的出版宗旨,已發展成為集圖書、期刊、音像電子及數字出版於一體的綜合性出版大社[2]

目錄

內容簡介

《Groovy程序設計》是Groovy編程指南,結合諸多實例探索了Groovy語言特性。主要內容包括:Groovy基礎知識介紹、如何將Groovy應用於日常編碼、MOP與元編程、使用元編程等。

《Groovy程序設計》適合Java開發人員學習Groovy,對Groovy已有了解的程序員也可在本書中學到一些其他書中從提及的訣竅和技巧。

目錄

第 一部分 Groovy起步

第1章 起步 2

1.1 安裝Groovy 2

1.1.1 在Windows系統環境安裝Groovy 2

1.1.2 在類Unix系統環境安裝Groovy 3

1.2 管理多個版本的Groovy 3

1.3 使用groovysh 4

1.4 使用groovyConsole 5

1.5 在命令行中運行Groovy 5

1.6 使用IDE 6

1.6.1 IntelliJ IDEA 6

1.6.2 Eclipse Groovy插件 6

1.6.3 TextMate Groovy Bundle 6

第 2章 面向Java開發 者的Groovy 8

2.1 從Java到Groovy 8

2.1.1 Hello,Groovy 8

2.1.2 實現循環的方式 9

2.1.3 GDK一瞥 11

2.1.4 安全導航操作符 13

2.1.5 異常處理 13

2.1.6 Groovy是輕量級的Java 15

2.2 JavaBean 15

2.3 靈活初始化與具名參數 19

2.4 可選形參 20

2.5 使用多賦值 21

2.6 實現接口 22

2.7 布爾求值 25

2.8 操作符重載 27

2.9 對Java 5特性的支持 28

2.9.1 自動裝箱 29

2.9.2 for-each 29

2.9.3 enum 30

2.9.4 變長參數 31

2.9.5 註解 32

2.9.6 靜態導入 33

2.9.7 泛型 33

2.10 使用Groovy代碼生成變換 35

2.10.1 使用@Canonical 35

2.10.2 使用@Delegate 35

2.10.3 使用@Immutable 36

2.10.4 使用@Lazy 37

2.10.5 使用@Newify 38

2.10.6 使用@Singleton 38

2.11 陷阱 40

2.11.1 Groovy的==等價於Java的equals( ) 40

2.11.2 編譯時類型檢查默認為關閉 42

2.11.3 小心新的關鍵字 43

2.11.4 別用這樣的代碼塊 43

2.11.5 閉包與匿名內部類的衝突 43

2.11.6 分號總是可選的 45

2.11.7 創建基本類型數組的不同語法 45

第3章 動態類型 47

3.1 Java中的類型 47

3.2 動態類型 48

3.3 動態類型不等於弱類型 49

3.4 能力式設計 50

3.4.1 使用靜態類型 50

3.4.2 使用動態類型 51

3.4.3 使用動態類型需要自律 53

3.5 可選類型 54

3.6 多方法 55

3.7 動態還是非動態 58

3.8 關閉動態類型 58

3.8.1 靜態類型檢查 59

3.8.2 靜態編譯 62

第4章 使用閉包 64

4.1 閉包的便利性 64

4.1.1 傳統方式 64

4.1.2 Groovy方式 65

4.2 閉包的應用 67

4.3 閉包的使用方式 68

4.4 向閉包傳遞參數 69

4.5 使用閉包進行資源清理 70

4.6 閉包與協程 72

4.7 科里化閉包 74

4.8 動態閉包 75

4.9 閉包委託 77

4.10 使用尾遞歸編寫程序 80

4.11 使用記憶化改進性能 82

第5章 使用字符串 87

5.1 字面常量與表達式 87

5.2 GString的惰性求值問題 90

5.3 多行字符串 93

5.4 字符串便捷方法 95

5.5 正則表達式 96

第6章 使用集合類 98

6.1 使用List 98

6.2 迭代ArrayList 100

6.2.1 使用List的each方法 100

6.2.2 使用List的collect方法 102

6.3 使用查找方法 102

6.4 List上的其他便捷方法 103

6.5 使用Map類 106

6.6 在Map上迭代 108

6.6.1 Map的each方法 108

6.6.2 Map的collect方法 109

6.6.3 Map的find和findAll方法 109

6.7 Map上的其他便捷方法 110

第 二部分 使用Groovy

第7章 探索GDK 114

7.1 使用Object類的擴展 114

7.1.1 使用dump和inspect方法 115

7.1.2 使用上下文with( )方法 115

7.1.3 使用sleep 116

7.1.4 間接訪問屬性 118

7.1.5 間接調用方法 119

7.2 其他擴展 119

7.2.1 數組的擴展 120

7.2.2 使用java.lang的擴展 120

7.2.3 使用java.io的擴展 122

7.2.4 使用java.util的擴展 124

7.3 使用擴展模塊定製方法 125

第8章 處理XML 128

8.1 解析XML 128

8.1.1 使用DOMCategory 129

8.1.2 使用XMLParser 131

8.1.3 使用XMLSlurper 131

8.2 創建XML 133

第9章 使用數據庫 136

9.1 創建數據庫 136

9.2 連接到數據庫 137

9.3 數據庫的Select操作 137

9.4 將數據轉為XML表示 139

9.5 使用DataSet 140

9.6 插入與更新 140

9.7 訪問Microsoft Excel 141

第 10章 使用腳本和類 143

10.1 Java和Groovy的混合 143

10.2 運行Groovy代碼 144

10.3 在Groovy中使用Groovy類 145

10.4 利用聯合編譯混合使用Groovy和Java 145

10.5 在Java中創建與傳遞Groovy閉包 146

10.6 在Java中調用Groovy動態方法 148

10.7 在Groovy中使用Java類 150

10.8 從Groovy中使用Groovy腳本 151

10.9 從Java中使用Groovy腳本 153

第三部分 MOP與元編程

第 11章 探索元對象協議 158

11.1 Groovy對象 159

11.2 查詢方法與屬性 162

11.3 動態訪問對象 164

第 12章 使用MOP攔截方法 166

12.1 使用GroovyInterceptable攔截方法 166

12.2 使用MetaClass攔截方法 168

第 13章 MOP方法注入 173

13.1 使用分類注入方法 173

13.2 使用ExpandoMetaClass注入方法 178

13.3 向具體的實例中注入方法 182

13.4 使用Mixin注入方法 184

13.5 在類中使用多個Mixin 187

第 14章 MOP方法合成 192

14.1 使用methodMissing合成方法 192

14.2 使用ExpandoMetaClass合成方法 196

14.3 為具體的實例合成方法 199

第 15章 MOP技術匯總 201

15.1 使用Expando創建動態類 201

15.2 方法委託:匯總練習 203

15.3 MOP技術回顧 207

15.3.1 用於方法攔截的選項 207

15.3.2 用於方法注入的選項 207

15.3.3 用於方法合成的選項 208

第 16章 應用編譯時元編程 209

16.1 在編譯時分析代碼 209

16.1.1 理解代碼結構 210

16.1.2 在代碼結構中導航 211

16.2 使用AST變換攔截方法調用 214

16.3 使用AST變換注入方法 218

第四部分 使用元編程

第 17章 Groovy生成器 224

17.1 構建XML 224

17.2 構建JSON 227

17.3 構建Swing應用 229

17.4 使用元編程定製生成器 230

17.5 使用BuilderSupport 233

17.6 使用FactoryBuilderSupport 236

第 18章 單元測試與模擬 240

18.1 本書代碼與自動化單元測試 240

18.2 對Java和Groovy代碼執行單元測試 241

18.3 測試異常 245

18.4 模擬 245

18.5 使用覆蓋實現模擬 247

18.6 使用分類實現模擬 250

18.7 使用ExpandoMetaClass實現模擬 251

18.8 使用Expando實現模擬 253

18.9 使用Map實現模擬 255

18.10 使用Groovy Mock Library實現模擬 255

18.10.1 使用StubFor 256

18.10.2 使用MockFor 257

第 19章 在Groovy中創建DSL 261

19.1 上下文 261

19.2 流暢 262

19.3 DSL的分類 263

19.4 設計內部的DSL 264

19.5 Groovy與DSL 264

19.6 使用命令鏈接特性改進流暢性 265

19.7 閉包與DSL 266

19.8 方法攔截與DSL 267

19.9 括號的限制與變通方案 268

19.10 分類與DSL 270

19.11 ExpandoMetaClass與DSL 271

附錄A  Web資源 273

附錄B 參考書目 277

參考文獻

  1. 我國出版社的等級劃分和分類標準,知網出書,2021-03-01
  2. 人民郵電出版社簡介,人民郵電出版社