6

翻译:疯狂的技术宅
英文标题:What's new in Kotlin 1.2? Code reuse, for starters
英文连接:https://www.javaworld.com/art...
本文首发于微信公众号:充实的脑洞

测试版现在可以下载,并支持Java 9

静态类型语言 Kotlin 1.2 版将提供一个实验功能,可以跨平台重用代码,以及与Java 9模块系统的兼容性。 Kotlin 1.2的测试版现在可以下载

kotlin的实验多平台项目功能允许开发人员在支持的目标平台之间重用代码:最初是JVM和JavaScript,后来是本地的。在平台之间共享的代码被放在一个公共模块中;平台相关的部分被放在特定于平台的模块中。在编译期间,为公共和平台特定部分编写代码。

开发人员可以通过预期和实际的声明来表示特定于平台的部分的通用代码的依赖关系。该声明指定一个API,而实际的声明要么是特定于API的平台,要么是一个类型别名,它引用外部库中的API的现有实现。同时,标准库具有用于在跨平台代码中执行数学运算的kotlin.math包。

kotlin.math包现在也为JavaScript的 math polyfills 提供了更好的精度。

Kotlin 1.2的标准库与新引入的Java 9模块系统兼容,该系统禁止拆分包(多个.jar文件在同一个包中声明类)。 在Kotlin 1.2中,kotlin-stdlib-jdk7和kotlin-stdlib-jdk8工件取代了旧的kotlin-stdlib-jre7和kotlin-stdlib-jre8。

此外,为了支持Java 9,kotlin 1.2还从 kotlin-reflect 库中删除了kotlin.reflect 包中不推荐使用的声明。开发人员需要切换到kotlin.reflect.full包中的声明,该声明在kotlin1.1中首次发布。

Kotlin 1.2中针对类型推导进行了改进,包括编译器能够使用类型推导中的类型转换信息。 如果开发人员调用返回类型参数(如T)的泛型方法,并将返回值转换为特定类型(例如Foo),则编译器现在可以知道,这个调用的T需要绑定到Foo类型。 这对于Android开发人员来说尤其重要,因为 Kotlin 编译器可以在 Android API Level 26 中正确分析findViewById调用。此外,编译器现在有一个选项,将所有警告视为错误。

Kotlin 1.2还具有以下增强功能:

  • 它现在支持注释中的数组文字,简化编码。
  • 它使用更一致的语法。
  • 新的反射API允许开发人员检查一个lateinit变量是否已经初始化。
  • lateinit修饰符现在可用于顶级属性和局部变量。

Kotlin 本是依赖JVM的语言,但后来又被扩展为可以编译成JavaScript。这一语言在今年春天被推广,Google将其作为构建Android移动应用程序的机制,与 Java 一起使用。

关注微信公众号:充实的脑洞, 一个技术宅的保留地

疯狂的技术宅
44.4k 声望39.2k 粉丝