title | date | author | tags | keywords | categories | reward | reward_title | reward_wechat | reward_alipay | source_url | translator | translator_url |
---|---|---|---|---|---|---|---|---|---|---|---|---|
[译]Kotlin 1.0.6 is here! |
2016-12-27 12:11:00 -0800 |
yanex |
官方动态 |
false |
Have a nice Kotlin! |
我们很高兴地宣布发布 Kotlin 1.0.6,这是 Kotlin 1.0 的新 bug 和工具更新。此版本带来了与 IDE 插件和 Android 支持相关的大量改进。 我们要感谢我们的外部贡献者,他们的引用请求被包含在这个版本中: 基拉里·拉赫曼 和 Yoshinori Isogai 。我们也要感谢我们的 EAP 用户的反馈。这对我们来说真的很有价值。 您可以在其中找到完整的更改列表 更新日志 。下面将介绍一些值得突出显示的变化。
我们继续添加将代码转换为惯用 Kotlin 的意图。 IDE 现在自动地建议用...替换try-finally
块 使用() 当所有的finally
块正在关闭资源时调用
“img alt =”“class =”alignnone size-full wp-image-4043“onmouseout =”this.src ='https://d3nmt5vlzunoa1.cloudfront.net/kotlin/files/2016/12/try1.png'; “ onmouseover =“this.src ='https://d3nmt5vlzunoa1.cloudfront.net/kotlin/files/2016/12/try.gif';” src =“https://d3nmt5vlzunoa1.cloudfront.net/kotlin/files/2016/12/try1.png”width =“700”/>
命名的参数有助于增加代码的可读性。使用新的“添加名称来调用参数”意图,您可以轻松地将名称添加到参数中,或者只是替换所有调用参数的名称。
{% raw %}
{% endraw %}- 清除空二次建设机构的检查/意图,以及空的主要建设者声明;
- “加入申报和转让”意向;
- 修复调试器中的内联函数和性能改进;
- KDoc 和 Quick Doc 的许多修复意图。
- 现在支持 Android Studio 2.3 beta 1,以及 Android Gradle 插件 2.3.0-alpha3 和更新版本。
- 添加“创建 XML 资源”意图;
- 只有在 build.gradle 中启用相应的插件,Android Extensions 支持才能在 IDE 中处于活动状态;
- Android Lint 中的大量修复程序。另外还添加了“抑制皮肤”意图。
我们继续研究 Kotlin 注解处理工具(kapt)的实验版本。尽管为了完全支持增量编译,还有一些事情要做,但自 Kotlin 1.0.4 起,注释处理的性能显着增加。
要启用实验性 kapt,只需将以下行添加到您的build.gradle
:
应用插件:'kotlin-kapt'
全开编译器插件使类注释具有特定的注释,并且它们的成员在没有明确的open
关键字的情况下打开,因此使用框架/库更容易,如 Spring AOP 或 Mockito。您可以阅读相关的全开的详细信息 保持 。
我们为 Gradle 和 Maven 以及 IDE 集成提供全面的插件支持。
{% raw %}
{% endraw %}buildscript {
dependencies {
classpath "org.jetbrains.kotlin:kotlin-allopen:$kotlin_version"
}
}
apply plugin: "kotlin-allopen"
allOpen {
annotation("com.your.Annotation")
}
{% raw %}
{% endraw %}如果类(或其任何超类)用com.your.Annotation
注释,则类本身及其所有成员将被打开。它甚至可以使用元注释:
{% raw %}
{% endraw %}@com.your.Annotation
annotation class MyFrameworkAnnotation
@MyFrameworkAnnotation
class MyClass // will be all-open
{% raw %}
{% endraw %}我们还提供了已经具有 Spring 框架所有必需注释的“kotlin-spring”插件:
{% raw %}
{% endraw %}buildscript {
dependencies {
classpath "org.jetbrains.kotlin:kotlin-allopen:$kotlin_version"
}
}
apply plugin: "kotlin-spring"
{% raw %}
{% endraw %}当然,您可以在同一个项目中同时使用kotlin-allopen
和kotlin-spring
。
{% raw %}
{% endraw %}<plugin>
<artifactId>kotlin-maven-plugin</artifactId>
<groupId>org.jetbrains.kotlin</groupId>
<version>${kotlin.version}</version>
<configuration>
<compilerPlugins>
<!-- Or "spring" for the Spring support -->
<plugin>all-open</plugin>
</compilerPlugins>
<pluginOptions>
<!-- Each annotation is placed on its own line -->
<option>all-open:annotation=com.your.Annotation</option>
<option>all-open:annotation=com.their.AnotherAnnotation</option>
</pluginOptions>
</configuration>
<dependencies>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-allopen</artifactId>
<version>${kotlin.version}</version>
</dependency>
</dependencies>
</plugin>
{% raw %}
{% endraw %}no-arg编译器插件为具有特定注释的类生成一个额外的零参数构造函数。生成的构造函数是合成的,因此不能从 Java 或 Kotlin 直接调用,但可以使用反射来调用它。你可以看到激动人心的讨论 这里 。
用法非常类似于全开。
{% raw %}
{% endraw %}buildscript {
dependencies {
classpath "org.jetbrains.kotlin:kotlin-noarg:$kotlin_version"
}
}
// Or "kotlin-jpa" for the Java Persistence API support
apply plugin: "kotlin-noarg"
noArg {
annotation("com.your.Annotation")
}
{% raw %}
{% endraw %}{% raw %}
{% endraw %}<plugin>
<artifactId>kotlin-maven-plugin</artifactId>
<groupId>org.jetbrains.kotlin</groupId>
<version>${kotlin.version}</version>
<configuration>
<compilerPlugins>
<!-- Or "jpa" for the Java Persistence annotation support -->
<plugin>no-arg</plugin>
</compilerPlugins>
<pluginOptions>
<option>no-arg:annotation=com.your.Annotation</option>
</pluginOptions>
</configuration>
<dependencies>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-noarg</artifactId>
<version>${kotlin.version}</version>
</dependency>
</dependencies>
</plugin>
{% raw %}
{% endraw %}要更新 IDEA 插件,请使用工具 | Kotlin | 配置 Kotlin 插件更新,然后按“检查更新现在”按钮。另外,别忘了在 Maven 和 Gradle 构建脚本中更新编译器和标准库版本。 命令行编译器可以从中下载 Github 发行页面 。 像往常一样,如果您遇到新版本的任何问题,欢迎您提供帮助 论坛 ,在 Slack(获得邀请) 这里 ),或报告中的问题 问题追踪器 。 让我们来吧!