如何在Kotlin中尝试内联课程

时间:2018-07-18 10:39:11

标签: class kotlin inline

1.2.30

起,似乎Kotlin中提供了内联类

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

compileKotlin {
    kotlinOptions {
        freeCompilerArgs = ['-XXLanguage:+InlineClasses']
    }
}

我在一个project中做到了,但我不断收到大量的

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

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

这是完整的log

我该如何解决?

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

1 个答案:

答案 0 :(得分:4)

使用内联类之类的实验语言功能会导致所生成的二进制文件带有特殊的预发行标志,从而使这些二进制文件无法在编译器的发行版本中使用。

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

但是,建议您不要在生产环境中使用具有未声明的预发布语言功能编译的二进制文件,因为更高版本的编译器在这些功能上的行为可能有所不同。