corda - 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 的人,然后再让问题变得更糟。
解决方案
快速历史:
- 最初安装 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 编译器没有效果。
推荐阅读
- kdb - 如何在 KDB 中加入符号?
- ubuntu - 登录moodle cronjob失败
- go - {{ 的目的是什么。}} 在 YAML 中?
- node.js - 同一个Node JS请求中的多个Mongo DB请求
- pandas - Pandas groupby with first 没有跳过 None 值
- godaddy-api - 在 goDaddy 域 API 建议中更改货币
- python - 过滤数据框,合并数据并在python中添加计数
- mysql - Docker / WSL / Symfony / MySQL - SQLSTATE [HY000] [2002] 连接被拒绝
- bash - Bash 输出跟踪
- dart - Google Maps Flutter - 折线未显示在地图上