与 Java 的比较
Kotlin 解决的一些 Java 问题
Kotlin 修复了 Java 中存在的一系列问题:
- 空引用受 类型系统控制。
- 无原始类型
- Kotlin 中的数组是 不型变的
- Kotlin 拥有真正的 函数类型,而 Java 则是使用 SAM 转换
- 不使用通配符的 使用处型变
- Kotlin 没有受检 异常
- 为只读集合与可变集合提供独立接口
Java 拥有但 Kotlin 没有的功能
- 受检异常
- 不是类的 原始类型。字节码会尽可能使用原始类型,但它们并非显式可用。
- static 成员 被 伴生对象、顶层函数、扩展函数 或 @JvmStatic 所取代。
- 通配符类型 被 声明处型变 与 类型投影 所取代。
- 三元运算符 a ? b : c 被 if 表达式 所取代。
- 记录
- package-private 可见性修饰符
Kotlin 没有模式匹配,但 Kotlin 中的智能转换 提供了与 Java 中的模式匹配 类似的功能。
请在 JetBrains 官方 Kotlin 频道的视频 中了解更多详情。
Kotlin 拥有但 Java 没有的功能
- lambda表达式 + 内联函数 = 高性能自定义控制结构
- 扩展函数
- 空安全
- 字符串模板
- 属性
- 主构造函数
- 一等委托
- 变量与属性类型的类型推断 (Java 10: 本地变量类型推断)
- 单例
- 声明处型变与类型投影
- 区间表达式
- 运算符重载
- 伴生对象
- 数据类
- 协程
- 顶层函数
- 带有默认值的形参
- 具名参数
- 中缀函数
- Expect 与 actual 声明
- 显式 API 模式 和 更好的 API 表面控制
Java 没有智能转换,但 模式匹配 提供了与 Kotlin 中的智能转换 类似的功能。
请在 JetBrains 官方 Kotlin 频道的视频 中了解更多详情。
下一步?
了解如何:
