最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

kotlin改善java代碼實(shí)例分析

 更新時間:2018年03月29日 14:48:34   作者:codecraft  
我們給大家整理了關(guān)于kotlin改善java代碼的相關(guān)實(shí)例以及操作的詳細(xì)方法,有需要的讀者們參考下。


本文主要舉幾個kotlin如何改善java代碼的例子

字符串字面值及模板

字符串字面值

  @Test
  fun testStringLiterals(){
    val a = """if(a > 1) {
     |  return a
     |}""".trimMargin()
    println(a)

    val b = """Foo
        Bar""".trimIndent()
    println(b)
  }

有了字符串字面值,寫sql啥的就不用那么費(fèi)勁拼接字符串了

字符串模板

 @Test
  fun testStringTemplate() {
    val name = "hello kotlin"
    println("Hello, $name!");
    val data = listOf(1,2,3)
    println("Hello, ${data[0]}!")
  }

這個字符串模板更是強(qiáng)大,相當(dāng)于內(nèi)置一個freemarker,而且都不用手工傳遞變量值

for循環(huán)中獲取當(dāng)前index

@Test
  fun testForEachIndex(){
    val items = listOf("apple", "banana", "kiwifruit")
    for (index in items.indices) {
      println("item at $index is ${items[index]}")
    }
  }

在java里頭for each循環(huán)要得到index,就得在外面聲明下index,自己統(tǒng)計(jì),太別扭了

data class

 //生成getter/setter,equals,hashcode,toString,copy等
  //setter是var變量才有
  data class Customer(val name: String, val email: String)

  @Test
  fun testDataClass(){
    val customer = Customer("admin","admin@admin.com")
    println(customer)
  }

java總是要聲明getter/setter,好處是可以在IDE查找那些方法有調(diào)用getter/setter;

lombok雖然可以自動生成getter/setter,@Data注解也可以生成equal/hashcode方法,但是lombok不方便在IDE查找那些方法有調(diào)用getter/setter;kotlin的data class幫你解決這些問題

Null Safety

 @Test
  fun testIfNotNull(){
    val files = File("Test").listFiles()
    println(files?.size) //null
  }

  @Test
  fun testIfNotNullAndElse(){
    val files = File("Test").listFiles()
    println(files?.size ?: "empty")
  }

這個Null Safety太有用了,比起java的三元表達(dá)式更簡潔一點(diǎn),在表達(dá)式為true的時候就不用重復(fù)寫要返回的內(nèi)容,只要寫else部分。

Null Safety在流式/鏈?zhǔn)秸{(diào)用的時候更有用

// 如果 `person` 或者 `person.department` 其中之一為空,都不會調(diào)用該函數(shù):
person?.department?.head = managersPool.getManager()

小結(jié)

本文只是舉了kotlin可以改善java代碼的幾個例子,kotlin太強(qiáng)大了,目標(biāo)是要替代java。其中很多設(shè)計(jì)可以看到scala的影子,但是黑魔法也比較多,學(xué)習(xí)曲線稍微有點(diǎn)抖,不過如果不使用太高級的語法,也還OK。

相關(guān)參考:https://www.kotlincn.net/docs/reference/

相關(guān)文章

  • 淺談springboot與微服務(wù)架構(gòu)

    淺談springboot與微服務(wù)架構(gòu)

    這篇文章主要介紹了淺談springboot與微服務(wù)架構(gòu),SpringBoot是由 Pivotal團(tuán)隊(duì)提供的框架,其設(shè)計(jì)?的是?來簡化新Spring應(yīng)?,初始搭建以及開發(fā)過程,該框架使?了特定的?式來進(jìn)?配置,需要的朋友可以參考下
    2023-07-07
  • 快速定位Java 內(nèi)存OOM的問題

    快速定位Java 內(nèi)存OOM的問題

    這篇文章主要介紹了快速定位Java 內(nèi)存OOM的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • 微信公眾號模板消息接口開發(fā)Java實(shí)現(xiàn)方法代碼

    微信公眾號模板消息接口開發(fā)Java實(shí)現(xiàn)方法代碼

    這篇文章主要介紹了微信公眾號模板消息接口開發(fā)Java實(shí)現(xiàn)的相關(guān)資料,,該接口可以用于向關(guān)注公眾號的用戶推送消息,包括群發(fā)和指定用戶發(fā)送消息,文章詳細(xì)介紹了如何獲取公眾號的測試信息、配置接口信息和獲取access_token,需要的朋友可以參考下
    2024-12-12
  • java批量導(dǎo)入導(dǎo)出文件的實(shí)例分享(兼容xls,xlsx)

    java批量導(dǎo)入導(dǎo)出文件的實(shí)例分享(兼容xls,xlsx)

    這篇文章主要給大家介紹了利用java批量導(dǎo)入導(dǎo)出文件的相關(guān)資料,文中給出了詳細(xì)的實(shí)例代碼,并且兼容xls,xlsx,對大家具有一定的參考學(xué)習(xí)價(jià)值,下面跟著小編一起來看看詳細(xì)的介紹吧。
    2017-06-06
  • spring boot密碼加密配置與實(shí)例詳解

    spring boot密碼加密配置與實(shí)例詳解

    BCrypt是一種專為密碼哈希設(shè)計(jì)的算法,它被廣泛認(rèn)為是安全的選擇之一,這篇文章主要介紹了spring boot密碼加密配置與實(shí)例詳解,需要的朋友可以參考下
    2024-12-12
  • Spring Boot jar 啟動時設(shè)置環(huán)境參數(shù)的操作

    Spring Boot jar 啟動時設(shè)置環(huán)境參數(shù)的操作

    這篇文章主要介紹了Spring Boot jar 啟動時設(shè)置環(huán)境參數(shù)的操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Java隨機(jī)生成字符串的四種方式例子

    Java隨機(jī)生成字符串的四種方式例子

    這篇文章主要給大家介紹了關(guān)于Java隨機(jī)生成字符串的四種方式,隨機(jī)數(shù)在實(shí)際中使用很廣泛,比如要隨即生成一個固定長度的字符串、數(shù)字,文中給出了詳細(xì)的代碼示例,需要的朋友可以參考下
    2023-10-10
  • Sharding-Jdbc 自定義復(fù)合分片的實(shí)現(xiàn)(分庫分表)

    Sharding-Jdbc 自定義復(fù)合分片的實(shí)現(xiàn)(分庫分表)

    本文主要介紹了Sharding-Jdbc 自定義復(fù)合分片的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • spring使用ehcache實(shí)現(xiàn)頁面緩存示例

    spring使用ehcache實(shí)現(xiàn)頁面緩存示例

    這篇文章主要介紹了spring使用ehcache實(shí)現(xiàn)頁面緩存示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • springmvc url處理映射的三種方式集合

    springmvc url處理映射的三種方式集合

    這篇文章主要介紹了springmvc url處理映射的三種方式集合,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08

最新評論

二手房| 遂平县| 卓尼县| 江口县| 磐石市| 中山市| 雷州市| 江安县| 钦州市| 襄樊市| 青神县| 古丈县| 登封市| 黑山县| 子洲县| 珠海市| 文水县| 山东| 桃园市| 聂拉木县| 贡嘎县| 宁陵县| 靖州| 岑溪市| 南靖县| 平凉市| 新龙县| 木兰县| 南丹县| 瓦房店市| 岫岩| 通辽市| 蕲春县| 江孜县| 石河子市| 铜鼓县| 阳山县| 交城县| 襄汾县| 遂昌县| 广昌县|