国产精品久久国产精麻豆99网站,激烈18禁高潮视频免费,老师含紧一点h边做边走视频动漫,双乳被一左一右的吸着

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

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

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

1 準(zhǔn)備工作:

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

有了以上的準(zhǔn)備工作咱們就可以來(lái)書(shū)寫(xiě) Groovy 代碼了,接下咱們就來(lái)看下 Groovy 和 Java 的區(qū)別

2 Groovy 和 Java 的區(qū)別

以下咱們就通過(guò)定義 JavaBean 來(lái)說(shuō)明 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 // 沒(méi)權(quán)限修飾符會(huì)自動(dòng)生成 getter setter private String getName() { name // 可以省略return } private void setName(String name) { this.name = name } //可省略 getter setter 省略了 email 的 getter setter }

接下來(lái)咱們來(lái)看下在 Groovy 中如何操作 JavaBean

2.3 Groovy 中操作JavaBean

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

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

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

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

以上就是 Groovy 和 Java 的比較,接下來(lái)咱們來(lái)看下 Groovy 的特有語(yǔ)法.

3 Groovy 的特有語(yǔ)法

Groovy 特有語(yǔ)法挺多的,以下咱們就挑一些比較特殊的語(yǔ)法來(lái)講解下.

3.1 基本語(yǔ)法

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

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

3.2 字符串定義

字符串的定義有三種方式

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

// 字符串使用 \’|\”|\’\’\’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 語(yǔ)法,以下咱們就來(lái)看下特有語(yǔ)法.

List 特有語(yǔ)法
  • 聲明: 使用 [] 定義集合
  • def list = [ele1,ele2,ele3]
  • 添加: 使用 << 做元素添加
  • list << ele4
  • 類型: java.util.ArrayList
Map 特有語(yǔ)法
  • 聲明: 使用[] 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 的重點(diǎn)知識(shí)點(diǎn),閉包簡(jiǎn)單理解就是 { } 括起來(lái)的代碼塊,跟方法類似,可帶參和不帶參.閉包可以賦給一個(gè)變量也可以當(dāng)做參數(shù)值傳遞給一個(gè)方法,在方法中調(diào)用閉包.

4.2 閉包的定義格式

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

4.3 閉包調(diào)用:

需要使用變量來(lái)接收再調(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ù)類型方法接收無(wú)參閉包def method1(Closure closure){ //closure() closure.call()}// 定義無(wú)指定參數(shù)類型方法接收帶參閉包def method2(clo){ //clo(\’willie\’) clo.call(\’willie\’)}method1(c1)method2(c2)

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

你不會(huì)以為我要分析 build.gradle 吧,不分析! 下一篇 Gradle 項(xiàng)目搭建再分析,期待下一篇.

降龍十八掌… 佛山無(wú)影腳…

猴子偷桃 ~~~

我在下一篇 <<Gradle 項(xiàng)目搭建>> 等你喔~~

作者:叩丁狼教育黃少存

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

亚洲av无码乱码在线观看裸奔| 久久九九久精品国产免费直播| 男生把手放进我内裤揉摸好爽 | 西西人体做爰大胆视频韩国 | 俄罗斯少妇性做爰片| 八个少妇沟厕小便漂亮各种大屁股 | 精品国产乱子伦一区二区三区| 色欲久久99精品久久久久久av | 亚洲国产精品成人综合色在线| 中文乱码人妻系列一区二区 | 公侵犯玩弄漂亮人妻优| 亚洲人成网站999久久久综合| 中文av人妻av无码中文视频| 女主放荡h乱np自慰| 久久人妻无码一区二区| 一女三黑人玩4p惨叫| 精品无码AV一区二区三区| 日本最新免费二区三区| 国产国拍精品亚洲av片| 乱肉黄蓉合集500篇| 国产精品女人呻吟在线观看| 国产SUV精品一区二区88L| 一区二区三区视频| 国产国语老龄妇女a片| 高清vpswindows另类乱| 日韩激情无码激情a片免费软件| 伊人色啪啪天天综合婷婷| 久久性爱视频| 银行娇妻1一14全文阅读| 国产精品国产三级国产普通话| 久久久久亚洲av片无码v| eeuss影院www在线观看| 激情 小说 亚洲 图片 伦| 边做奶水边喷h高h共妻| www夜插内射视频网站| 妈妈的朋友中文字幕| 最近免费中文字幕中文高清6| 亚洲精品无码久久久久苍井空| 精东传媒vs天美传媒电影| a级a片少妇高潮喷水片| 帅小伙自慰videogay男男|