国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Java > 正文

kotlin改善java代碼實例分析

2024-07-21 23:03:44
字體:
來源:轉載
供稿:網友

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

字符串字面值及模板

字符串字面值

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

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

字符串模板

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

這個字符串模板更是強大,相當于內置一個freemarker,而且都不用手工傳遞變量值

for循環中獲取當前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循環要得到index,就得在外面聲明下index,自己統計,太別扭了

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查找那些方法有調用getter/setter;

lombok雖然可以自動生成getter/setter,@Data注解也可以生成equal/hashcode方法,但是lombok不方便在IDE查找那些方法有調用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的三元表達式更簡潔一點,在表達式為true的時候就不用重復寫要返回的內容,只要寫else部分。

Null Safety在流式/鏈式調用的時候更有用

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

小結

本文只是舉了kotlin可以改善java代碼的幾個例子,kotlin太強大了,目標是要替代java。其中很多設計可以看到scala的影子,但是黑魔法也比較多,學習曲線稍微有點抖,不過如果不使用太高級的語法,也還OK。

相關參考:https://www.kotlincn.net/docs/reference/


注:相關教程知識閱讀請移步到kotlin教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 都昌县| 古田县| 博湖县| 汤阴县| 吴川市| 唐山市| 玉龙| 筠连县| 弥勒县| 西和县| 馆陶县| 潞西市| 林州市| 双鸭山市| 金堂县| 金昌市| 漯河市| 金华市| 吉水县| 闽侯县| 崇信县| 汾阳市| 保康县| 凤台县| 海口市| 赤城县| 砚山县| 吴旗县| 绥德县| 阿瓦提县| 垦利县| 衢州市| 社会| 玉龙| 汉寿县| 竹北市| 沂南县| 仁布县| 拉孜县| 昭平县| 上高县|