国产精品久久国产精麻豆99网站,激烈18禁高潮视频免费,老师含紧一点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 // 構造器 // getter setter…}

2.2 Groovy 定義 JavaBean

class Student { private String name private String email Integer age // 沒權限修飾符會自動生成 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 \’私有getter方法:\’ stu.getName()// 使用點的方式操作字段stu.email = \’xiao@\’println \’點方式調(diào)用:\’ stu.email// 調(diào)用自動生成的 getter setter 方法stu.setAge(19)println \’調(diào)用自動生成getter,setter:\’ stu.getAge()// 自動生成具名構造器Student stu = new Student(name:\’willie\’,age:18)//Student stu = [name:\’willie\’,age:18] // 直接寫參數(shù)和值賦給對象,會自動設置字段值println stu.name \’:\’ stu.age \’:\’ stu.email// null 調(diào)用方法不報空指針異常stu.name = nullprintln stu.name.equals(\’ssss\’)

2.4 總結 groovy 與 Java 不同

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

以上就是 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 語言定義的項目構建腳本.此文件非常重要.所以,接下來…

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

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

猴子偷桃 ~~~

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

作者:叩丁狼教育黃少存

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

久久成人国产精品| 免费大片黄在线观看视频| 99国产精品久久久久久久成人热| 久久久久久无码大片a片| 色综合久久精品亚洲国产| 天黑黑影院免费观看视频在线播放| 最美情侣韩国片免费观看| 中文乱码字慕人妻熟女人妻| 久久水蜜桃亚洲av无码精品| 国产精品久久毛片a片| 亚洲av无码av吞精久久 | 欧美熟妇丰满肥白大屁股免费视频| 伊人情人综合网| chinese叫床videos| 人妻在厨房被色诱 中文字幕 | 藏精阁av无码亚洲av| 女人被狂躁c到高潮视频| 伊人色综合久久天天五月婷| 亚洲AV永久无码天堂影院黑人| 欧美喷潮久久久xxxxx| 99久久精品国产一区二区三区| av免费观看| 艳乳欲仙欲死在线观看| 久久婷婷激情综合色综合俺也去 | 无码国产精品一区二区免费式直播| 国产女人喷潮视频在线观看| 校草被两个混混脱裤玩j| 精品国模一区二区三区| 国产午夜精品无码| 吸咬奶头狂揉60分钟视频 | 国产日韩成人内射视频| 老熟女重囗味hdxx70星空| 国产sm鞭打折磨调教视频| 天天摸天天做天天爽天天弄| 国精产品一区二区三区糖心| 丁香花在线视频完整版| 久久久亚洲精品无码| 大炕上大战白胖老妇| 精品一区二区三区无码视频| 欧美性猛交╳xxx富婆| 100国产精品人妻无码|