激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|JavaScript|易語言|

服務器之家 - 編程語言 - Java教程 - kotlin改善java代碼實例分析

kotlin改善java代碼實例分析

2021-04-18 14:13codecraft Java教程

我們給大家整理了關于kotlin改善java代碼的相關實例以及操作的詳細方法,有需要的讀者們參考下。

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

字符串字面值及模板

字符串字面值

?
1
2
3
4
5
6
7
8
9
10
11
@Test
fun testStringLiterals(){
  val a = """if(a > 1) {
   return a
   |}""".trimMargin()
  println(a)
 
  val b = """Foo
      Bar""".trimIndent()
  println(b)
}

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

字符串模板

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

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

for循環中獲取當前index

?
1
2
3
4
5
6
7
@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

?
1
2
3
4
5
6
7
8
9
//生成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

?
1
2
3
4
5
6
7
8
9
10
11
@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在流式/鏈式調用的時候更有用

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

小結

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

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

原文鏈接:https://segmentfault.com/a/1190000014052524

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲成人在线免费 | 欧美一区二区三区免费观看 | 999久久久国产999久久久 | av大全在线免费观看 | 2021狠狠操 | 色综合久久久久综合99 | 日韩黄色片网站 | 精品99在线视频 | www.狠狠操.com| 一本色道久久综合狠狠躁篇适合什么人看 | 国产日韩a | 日日草日日干 | 粉嫩一区 | 欧美成人久久 | 欧美人一级淫片a免费播放 久久久久久久久91 国产99久久久久久免费看 | 91久久国产露脸精品国产护士 | av电影在线观看网址 | 91社区在线观看 | 久久99亚洲精品 | 91精品免费观看 | 夏目友人帐第七季第一集 | 欧美h版电影在线观看 | 欧美一级高清片_欧美高清aa | 日美av在线| 日本不卡二区 | 1级黄色毛片 | 永久免费黄色片 | 蜜桃91麻豆 | 国产99视频在线观看 | 中国国语毛片免费观看视频 | 这里精品| 欧美成人精品一区二区男人小说 | 蜜桃久久一区二区三区 | 国产资源视频在线观看 | 97人人草 | www久久艹| 欧美日韩视频在线播放 | 国产无遮挡一区二区三区毛片日本 | 成人在线观看一区二区三区 | 黄色毛片免费看 | 国产精品视频1区 |