代码之家  ›  专栏  ›  技术社区  ›  elect

如何在Kotlin中尝试内联类

  •  3
  • elect  · 技术社区  · 6 年前

    似乎内联类在Kotlin中可用,因为 1.2.30

    根据 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

    我尝试清理和构建,将Gradle升级到4.9,使用 allprojects { } 但是什么都没用……

    这是完整的 log

    我怎么解决?

    注意,这些无符号类与Kotlin1.3中的实验无符号无关。

    1 回复  |  直到 6 年前
        1
  •  4
  •   hotkey    6 年前

    使用内联类之类的实验性语言特性会导致生成的二进制文件被标记为一个特殊的预发布标志,这会使二进制文件在编译器的发布版本中不可用。

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

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