与 Java 的比较
Kotlin 中已解决的一些 Java 问题
Kotlin 修复了一些列 Java 饱受其苦的问题:
- 空引用由类型系统来控制
- 无原始类型
- 数组在 Kotlin 中是协变的
- Kotlin 有特有的(proper)函数类型,与 Java 的 SAM 转换 截然相反
- 无通配符的使用处变形(use-site variance)
- Kotlin 没有检查型异常(checked exception)
Java 有 Kotlin 没有的
- 检查型异常
- 不是类的基础类型
- 静态成员
- 非私有字段
- 通配符类型
- 三元操作符 a ? b : c
Kotlin 有 Java 没有的
- lambda 表达式 + 内联函数 = 高效的自定义控制结构
- 扩展函数
- Null 安全
- 智能转换
- 字符串模板
- 属性
- 首要构造器
- 头等代理?
- 变量和属性的类型推到
- 单例
- 声明处变形 & 类型映射
- 范围表达式
- 操作符重载
- 伴生对象
- 数据类
- 只读和可变集合的独立接口
- 协程