gpt4 book ai didi

IntelliJ 中的 Kotlin 多平台 JVM 类型不匹配

转载 作者:行者123 更新时间:2023-12-02 13:09:29 24 4
gpt4 key购买 nike

我有一个项目,其中包含以下模块:

  • 常见
  • 普通js
  • 普通 jvm
  • 后台
  • 网站

  • 这个想法是我将我的共享(kotlin)代码(主要是模型)放在共同的位置,可以在 kotlin 驱动的后端和使用最近引入的多平台支持的 javascript 驱动的 webapp 中使用。为此,我在 Intellij 中创建了一个新的多平台应用程序,并向其中添加了后端和 Web 模块。

    公共(public)模块中的示例类:

    data class Show(
    val id: Long,
    val type: ShowType,
    val title: String,
    var description: String? = null
    )

    后端是一个简单的 Spring Boot 应用程序。它依赖于 common-jvm 项目:

    compile project(":common-jvm")

    现在当我运行 gradle bootRun ,应用程序启动并正常工作。但是,当我尝试使用 IntelliJ 运行相同的应用程序时,会出现如下错误:

    Error:(68, 26) Kotlin: Type mismatch: inferred type is kotlin.Long but java.lang.Long was expected
    Error:(68, 65) Kotlin: Type mismatch: inferred type is kotlin.String! but java.lang.String was expected



    在这一行,我尝试创建 Show 的实例使用来自 json 源的数据的模型:
    val movie = Show(json.get(id).asLong(), ShowType.MOVIE, json.get(movieTitle).asText())

    我正在使用 Kotlin 1.2.10 和 spring boot 1.5.9.RELEASE。

    有谁知道这是什么原因以及如何解决的?我试着把 -Xmulti-platform在后端模块的项目结构中的附加命令行参数中,但这也不起作用。

    最佳答案

    您需要将构建/运行操作委托(delegate)给 Gradle,因为目前不支持使用 IDEA 构建多平台项目。

    Build > Build Tools > Gradle > Runner

    关于IntelliJ 中的 Kotlin 多平台 JVM 类型不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48066754/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com