Kotlin 类型相关

  1. var a: Long = 1L //编辑后的Java代码是基础类型 long
  2. var b: Long? = 2L //编译后的Java代码是基础类型 long
  3. var c: Long? = 3L //编译后的Java代码是包装类型 Long
  4. c = null

image.png

  • 只要在kotlin中基础类型可能为空,就会转换成Java的包装类型
  • 只要基础类型的变量不可能为空,就会转换成Java的原始类型

image.png

  • 类型推导,写kotlin代码省略了变量类型,最终被编译器补充回来了
  • 原始类型,虽然kotlin没有原始类型,但编译器会根据每一个变量的可空性将它们转换成“原始类型”或者包装类型
  • 字符串模板,编译器最终会将它们转换成Java拼接形式
  • when 表达式,编译器最终会将它们转换成类似 switch case 的语句
  • 类默认 public,Kotlin 当中被我们省略掉 public,最终会被编译器补充
  • 嵌套类默认 static,我们在 Kotlin 当中的嵌套类,默认会被添加 static 关键字,将其变成静态内部类,防止不必要的内存泄漏
  • 数据类,Kotlin 当中简单的一行代码“data class Person(val name: String, val age: Int)”,编译器帮我们自动生成很多方法:getter()、setter()、equals()、hashCode()、toString()、componentN()、copy()