日本电影一区二区_日本va欧美va精品发布_日本黄h兄妹h动漫一区二区三区_日本欧美黄色

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 的重點知識點,閉包簡單理解就是 { } 括起來的代碼塊,跟方法類似,可帶參和不帶參.閉包可以賦給一個變量也可以當做參數(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 項目搭建>> 等你喔~~

作者:叩丁狼教育黃少存

相關(guān)新聞

聯(lián)系我們
聯(lián)系我們
公眾號
公眾號
在線咨詢
分享本頁
返回頂部
泊头市| 保山市| 社旗县| 南靖县| 阜城县| 阿城市| 巴彦县| 棋牌| 公安县| 青铜峡市| 航空| 金乡县| 康乐县| 寿阳县| 福州市| 大邑县| 多伦县| 济南市| 威远县| 双鸭山市| 永定县| 蓝山县| 临泽县| 武邑县| 油尖旺区| 浮梁县| 通河县| 安国市| 绍兴市| 新邵县| 冷水江市| 基隆市| 蒲城县| 正宁县| 哈巴河县| 河津市| 青神县| 巴中市| 长寿区| 岗巴县| 布拖县|