与 Java 的比较
Kotlin 中解决的一些 Java 问题
Kotlin 修复了 Java 存在的一系列问题:
- 空引用由类型系统控制。
- 没有原始类型
- Kotlin 中的数组是不变的
- Kotlin 具有合适的函数类型,而不是 Java 的 SAM 转换
- 没有通配符的 使用点变型
- Kotlin 没有受检异常
- 用于只读和可变集合的独立接口
Java 有而 Kotlin 没有的
- 受检异常
- 不是类的基本类型。 字节码尽可能使用基本类型,但它们不是显式可用的。
- 静态成员被伴生对象、顶层函数、扩展函数或 @JvmStatic 替代。
- 通配符类型被声明点变型和类型投影替代。
- 三元运算符
a ? b : c
被 if 表达式 替代。 - Records
- Pattern Matching
- package-private 可见性修饰符
Kotlin 有而 Java 没有的
- Lambda 表达式 + 内联函数 = 高效的自定义控制结构
- 扩展函数
- 空安全
- 智能类型转换 (Java 16: Pattern Matching for instanceof)
- 字符串模板 (Java 21: String Templates (Preview))
- 属性
- 主构造函数
- 头等委托
- 变量和属性类型的类型推断 (Java 10: Local-Variable Type Inference)
- 单例
- 声明点变型 & 类型投影
- 区间表达式
- 运算符重载
- 伴生对象
- 数据类
- 协程
- 顶层函数
- 默认参数
- 命名参数
- 中缀函数
- Expect 和 actual 声明
- 显式 API 模式 和 更好地控制 API 表面
接下来做什么?
学习如何: