Kotlin 类型相关
var a: Long = 1L //编辑后的Java代码是基础类型 long
var b: Long? = 2L //编译后的Java代码是基础类型 long
var c: Long? = 3L //编译后的Java代码是包装类型 Long
c = null
- 只要在kotlin中基础类型可能为空,就会转换成Java的包装类型
- 只要基础类型的变量不可能为空,就会转换成Java的原始类型
- 类型推导,写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()