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

丹尼斯17

我有一个包含以下模块的项目:

  • 共同
  • 普通js
  • 普通jvm
  • 后端
  • 网路

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

通用模块中的示例类:

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运行相同的应用程序时,出现如下错误:

错误:(68,26)Kotlin:类型不匹配:推断的类型是kotlin.Longjava.lang.Long预期的
错误:(68,65)Kotlin:类型不匹配:推断的类型是kotlin.String!java.lang.String预期的

在这行代码中,我尝试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其他命令行参数放入后端模块的项目结构中,但这也不起作用。

伊利亚

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

生成>生成工具> Gradle> Runner

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章