亚洲熟妇av一区二区三区,久久久久久精品观看sss,免费观看四虎精品国产永久,国产成人精品一区二三区熟女,天堂网在线最新版www资源网

Gradle 入門-Groovy 代碼之談(gradle入門教程)

Gradle 入門-Groovy 代碼之談(gradle入門教程)

上一篇咱們用文字介紹了 groovyjava 的不同和特有的特性,這一篇咱們就用代碼來闡述 Groovy 和 Java 的不同以及特有的特性.寫代碼之前需要來做一些準備工作,準備工作如下.

1 準備工作:

  • 創(chuàng)建 Gradle Java 項目
  • IntelliJ IDEA -> File->new->project->Gradle->Java->Next->寫GrounpId,ArtifactId,Version->選本地Gradle環(huán)境->寫項目名->Finish 項目創(chuàng)建完成.
  • 打開 Groovy 控制臺: Tools->Groovy Console-> 直接寫 Groovy 代碼

有了以上的準備工作咱們就可以來書寫 Groovy 代碼了,接下咱們就來看下 Groovy 和 Java 的區(qū)別

2 Groovy 和 Java 的區(qū)別

以下咱們就通過定義 JavaBean 來說明 Groovy 和 Java 的不同之處.

2.1 Java 定義 JavaBean

class Student { private String name private String email private Integer age // 構(gòu)造器 // getter setter…}

2.2 Groovy 定義 JavaBean

class Student { private String name private String email Integer age // 沒權(quán)限修飾符會自動生成 getter setter private String getName() { name // 可以省略return } private void setName(String name) { this.name = name } //可省略 getter setter 省略了 email 的 getter setter }

接下來咱們來看下在 Groovy 中如何操作 JavaBean

2.3 Groovy 中操作JavaBean

Groovy 可以做類,也可以做腳本,所以 咱們可以在類的后面直接寫操作JavaBean 的語句.如下

// class Student {…}// 外部可直接調(diào)用類的私有成員Student stu = new Student()stu.setName(\”小明\”)println \’私有g(shù)etter方法:\’ stu.getName()// 使用點的方式操作字段stu.email = \’xiao@\’println \’點方式調(diào)用:\’ stu.email// 調(diào)用自動生成的 getter setter 方法stu.setAge(19)println \’調(diào)用自動生成getter,setter:\’ stu.getAge()// 自動生成具名構(gòu)造器Student stu = new Student(name:\’willie\’,age:18)//Student stu = [name:\’willie\’,age:18] // 直接寫參數(shù)和值賦給對象,會自動設(shè)置字段值println stu.name \’:\’ stu.age \’:\’ stu.email// null 調(diào)用方法不報空指針異常stu.name = nullprintln stu.name.equals(\’ssss\’)

2.4 總結(jié) groovy 與 Java 不同

  • JavaBean 的定義
  • 1). 可省略分號
  • 2). 可省略 getter/setter
  • 3). 可省略 return
  • 4). 無權(quán)限修飾符自動生成 getter/setter
  • 直接類外定義對象和調(diào)用字段
  • 1). 可調(diào)用私有成員
  • 2). 可使用點方式調(diào)用字段
  • 3). 無權(quán)限修飾會自動生成 getter setter
  • 4). 自帶具名構(gòu)造器
  • 空值使用不拋出空指針異常

以上就是 Groovy 和 Java 的比較,接下來咱們來看下 Groovy 的特有語法.

3 Groovy 的特有語法

Groovy 特有語法挺多的,以下咱們就挑一些比較特殊的語法來講解下.

3.1 基本語法

  • 變量類型定義
  • groovy 具有特有的弱類型聲明, 用 def 來代替所有類型,變量可不寫類型.建議帶 def,清晰
  • assert 方法
  • 使用 assert 方法做斷言
  • 方法括號可省略
  • 方法調(diào)用可以省略括號,前提是必須帶有參數(shù)的方法,不然會認為是屬性.

//變量聲明def name = \’willie\’age = 18// 帶參數(shù)方法調(diào)用可省略括號println name \’:\’ age// assert 斷言assert age == 19

3.2 字符串定義

字符串的定義有三種方式

  1. 單引號( ‘ ‘ ) : 普通字符串定義
  2. 雙引號( “ “ ) : 內(nèi)容中可使用 ${} 引用變量值
  3. 三單引號(‘’’ ‘’’): 可按格式引入字符串,字符串可換行.

// 字符串使用 \’|\”|\’\’\’def str1 = \’willie\’ // 普通字符串定義def str2 = \”wolfcode:${str1}\” // 字符串內(nèi)容中可引用變量def str3 = \’\’\’wolfcode: willie\’\’\’ // 可格式化定義字符串println str1 // willieprintln str2 // wolfcode:willieprintln str3 // wolfcode: // willie

3.3 集合定義和使用

所有操作兼容 Java 語法,以下咱們就來看下特有語法.

List 特有語法
  • 聲明: 使用 [] 定義集合
  • def list = [ele1,ele2,ele3]
  • 添加: 使用 << 做元素添加
  • list << ele4
  • 類型: java.util.ArrayList
Map 特有語法
  • 聲明: 使用[] key:value 的方式定義
  • def map = [key1:value1,key2:value2]
  • 添加: 使用.key 賦值方式
  • map.key3 = value3
  • 類型: java.util.LinkedHashMap

// list 集合,使用[] 定義集合def list = [\’willie\’,\’will\’,\’stef\’]list << \’AA\’ // List 元素特有添加方式list.add(\’BB\’)println list // [willie, will, stef, AA, BB]println list.getClass() // 使用的是 java.util.ArrayListprintln \”=========== Map 映射 ==============\”def map = [name:\’willie\’,age:18]map.wechat = \’cunge_weixin\’ // Map 元素特有添加方式map.put(\’aa\’,\’AA\’)println map // [name:willie, age:18, wechat:cunge_weixin, aa:AA]println map.getClass() // 使用的是 java.util.LinkedHashMap

4 閉包

4.1 閉包介紹

閉包是 Groovy 的重點知識點,閉包簡單理解就是 { } 括起來的代碼塊,跟方法類似,可帶參和不帶參.閉包可以賦給一個變量也可以當(dāng)做參數(shù)值傳遞給一個方法,在方法中調(diào)用閉包.

4.2 閉包的定義格式

{ [param1,param2… ->] 執(zhí)行體}

4.3 閉包調(diào)用:

需要使用變量來接收再調(diào)用

def closure = {[param1,param2… ->] 執(zhí)行體}closure([param]) 或 closure.call([param])

4.4 代碼展現(xiàn)

定義帶參和不帶參閉包,作為方法的參數(shù)使用(Gradle 中使用 Groovy 閉包的方式)

// 不帶參閉包def c1 = { println \’hello\’}// 帶參閉包def c2 = { val -> // 指定閉包形參名 println \”hello ${val}\”}// 定義指定參數(shù)類型方法接收無參閉包def method1(Closure closure){ //closure() closure.call()}// 定義無指定參數(shù)類型方法接收帶參閉包def method2(clo){ //clo(\’willie\’) clo.call(\’willie\’)}method1(c1)method2(c2)

Groovy 的閉包在 Gradle 中起決定性作用,講這么久的 Groovy 主要是為了給 Gradle 做鋪墊,在每個Gradle 項目中都有一個 build.gradle 文件,此文件就是使用 Groovy 語言定義的項目構(gòu)建腳本.此文件非常重要.所以,接下來…

你不會以為我要分析 build.gradle 吧,不分析! 下一篇 Gradle 項目搭建再分析,期待下一篇.

降龍十八掌… 佛山無影腳…

猴子偷桃 ~~~

我在下一篇 <<Gradle 項目搭建>> 等你喔~~

作者:叩丁狼教育黃少存

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報,一經(jīng)查實,本站將立刻刪除。