与 Java 语言比较Kotlin 解决了一些 Java 中的问题Java 有而 Kotlin 没有的东西Kotlin 有而 Java 没有的东西与 Java 语言比较Kotlin 解决了一些 Java 中的问题Kotlin 通过以下措施修复了 Java 中一系列长期困扰我们的问题: 空引用由类型系统控制。无原始类型Kotlin 中数组是不型变的相对于 Java 的 SAM-转换,Kotlin 有更合适的函数类型没有通配符的使用处型变Kotlin 没有受检异常 Java 有而 Kotlin 没有的东西 受检异常不是类的原生类型 —— 字节码会尽可能试用原生类型,但不是显式可用的。静态成员 —— 以 伴生对象、 顶层函数、 扩展函数 或者 @JvmStatic 取代。通配符类型 —— 以 声明处协变 与 类型投影 取代。三目操作符 a ? b : c —— 以 if 表达式取代。 Kotlin 有而 Java 没有的东西 Lambda 表达式 + 内联函数 = 高性能自定义控制结构扩展函数空安全智能类型转换字符串模板属性主构造函数一等公民的委托变量与属性类型的类型推断单例声明处型变 & 类型投影区间表达式操作符重载伴生对象数据类分离用于只读与可变集合的接口协程