如何在 Kotlin 中尝试内联类

ele*_*ect 4 inline class kotlin

1.2.30开始,Kotlin 中似乎可以使用内联类

根据Wasabi375,您可以通过以下方式启用它们:

compileKotlin {
    kotlinOptions {
        freeCompilerArgs += ['-XXLanguage:+InlineClasses']
    }
}
Run Code Online (Sandbox Code Playgroud)

我在我们拥有的一个项目中做到了这一点,但我不断收到大量

Class 'unsigned.ByteKt' is compiled by a pre-release version of Kotlin and cannot be loaded by this version of the compiler

我尝试清理和构建,使用 将 Gradle 升级到 4.9 allprojects { },但没有任何效果..

这是完整的日志

我该如何解决?

Ps:请注意,那些未签名的类与 Kotlin 1.3 中的实验性未签名类无关

hot*_*key 5

使用内联类等实验性语言功能会导致生成的二进制文件被标记为特殊的预发布标志,这使得二进制文件无法用于编译器的发布版本。

为了绕过对二进制文件的预发布状态检查,您可以使用标志编译它们的用法-Xskip-metadata-version-check

但是,建议您不要这样做,也不要在生产中使用使用未宣布的预发布语言功能编译的二进制文件,因为更高版本的编译器在这些功能方面的行为可能有所不同。