Class 如何在Kotlin中尝试内联类

Class 如何在Kotlin中尝试内联类,class,kotlin,inline,Class,Kotlin,Inline,看起来Kotlin中可以使用内联类,因为 根据,您可以通过以下方式启用它们: compileKotlin { kotlinOptions { freeCompilerArgs += ['-XXLanguage:+InlineClasses'] } } 我在我们的一次中做到了这一点,但我不断得到大量的信息 类“unsigned.ByteKt”由Kotlin的预发行版本编译,不能由此版本的编译器加载 我试图使用allprojects{}清理和构建Gradle,并将其

看起来Kotlin中可以使用内联类,因为

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

compileKotlin {
    kotlinOptions {
        freeCompilerArgs += ['-XXLanguage:+InlineClasses']
    }
}
我在我们的一次中做到了这一点,但我不断得到大量的信息

类“unsigned.ByteKt”由Kotlin的预发行版本编译,不能由此版本的编译器加载

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

这是完整的

我怎样才能解决它


Ps:请注意,这些未签名的类与Kotlin 1.3中的实验性未签名类无关,使用实验性语言功能(如内联类)会导致生成的二进制文件被标记为一个特殊的预发布标志,这使得二进制文件在编译器的发布版本中不可用

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


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

是的,我完全意识到风险。无论如何,我对内联类有很大的期望,因为我的项目中有很多实际的kotlin限制,所以我想开始和他们一起玩,看看他们是否能帮助我。如何添加该标志?您可以使用与添加语言功能标志相同的方式添加该标志,即通过Kotlin编译任务的
kotlinOptions.freeCompilerArgs
。尝试了
freeCompilerArgs=['-XXLanguage:+InlineClasses','-Xskip元数据版本检查']
freeCompilerArgs=['-XXLanguage:+InlineClasses,-Xskip元数据版本检查']
。两者都不起作用
kotlinOptions.freeCompilerArgs=[“-XXLanguage:+InlineClasses”,“-Xskip元数据版本检查”]