首页 > 解决方案 > IntelliJ/Kotlin 升级导致“不兼容的类型”错误?

问题描述

几天前,我将 IntelliJ 和 kotlin 更新到了最新版本。我认为这是导致我的问题的这两种行为之一。IntelliJ 开始在我的 QueryCriteria 语句中突出显示以前没有的错误:

QueryCriteria myQueryCriteria = new QueryCriteria.LinearStateQueryCriteria(null, singletonList(uuid), null, Vault.StateStatus.ALL);

错误:

Incompatible types. Found: 'net.corda.core.node.services.vault.QueryCriteria.LinearStateQueryCriteria', required: 'net.corda.core.node.services.vault.QueryCriteria'

我一直使用这种语法,因为然后我将 myQueryCriteria 传递给 Query:

Vault.Page<myContractState> page = mockNodeA.getServices().getVaultService().queryBy(myContractState.class, myQueryCriteria);

该错误不会阻止我的测试运行。我尝试更改了几个设置,但我意识到我最好先问问更熟悉 java/kotlin/intelliJ/Corda 的人,然后再让问题变得更糟。

标签: corda

解决方案


快速历史:

  • 最初安装 IntelliJ 2018.3 到 2019.3 – 没有问题
  • 升级到 IntelliJ 2020.3.2 – 没问题
  • 更新到 IntelliJ 2021.1 – 出现错误

我最终回到 IntelliJ 2020.3.3 以使错误停止

文档清楚地说:

“安装 IntelliJ IDEA 社区版。Corda 支持 IntelliJ IDEA 版本 2017.x、2018.x、2019.x 和 2020.x;以及 Kotlin 插件版本 1.2.71。”

…所以当我更新到 2021.1 时,我已经超出了推荐的版本。当 2020.3.2 提示我更新时,我没有意识到它会将我带到 2021.1(我的错)。

背景:我对 IntelliJ/Java 仍然很陌生,但我尝试了所有我能想到的使错误消失但无法修复的方法。

Kotlin 插件:

  • 2021.1 不允许我安装 Kotlin 插件 1.2.71,因为它不受支持。
  • IntelliJ 2019.3 Kotlin 插件 1.3.61-release-IJ2019.3-1 = 没有错误
  • IntelliJ 2020.3 Kotlin 插件 203-1.4.10-release-IJ7717.8 = 无错误
  • IntelliJ 2021.1 Kotlin 插件 211-1.4.32-release-IJ6693.72 = 错误

我尝试将 Kotlin 插件降级到旧版本,但它总是会忽略旧插件并继续使用新插件。

我尝试更改检查,但错误似乎不是来自检查。

在 Build, Execution, Deployment 下更改 Kotlin 编译器没有效果。


推荐阅读