如何修复类型不匹配:@ExtendWith(SpringExtension::class) Class -> Class in intellij?
Posted
技术标签:
【中文标题】如何修复类型不匹配:@ExtendWith(SpringExtension::class) Class -> Class in intellij?【英文标题】:how do I fix type mismatch: @ExtendWith(SpringExtension::class) KClass -> Class in intelij? 【发布时间】:2019-01-12 19:16:12 【问题描述】:我正在使用 intellij community 2018.2 和 gradle 4.9 和 kotlin 1.2.60
我刚刚从 start.spring.io 下载了一个带有 kotlin/gradle 支持 + web + h2 + jpa 的 springboot2 包。我正在关注春季的this官方教程。
gradle build
和 gradle test
在命令行中都可以正常工作。
但在 intellij 中,我从 IDE 收到以下错误:
Error:(9, 13) Kotlin: Type mismatch: inferred type is KClass<SpringExtension> but Class was expected
package org.ninrod.blog.blog
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.extension.ExtendWith
import org.springframework.boot.test.context.SpringBootTest
import org.springframework.test.context.junit.jupiter.SpringExtension
@ExtendWith(SpringExtension::class) <-- RIGHT HERE
@SpringBootTest
class BlogApplicationTests
@Test
fun contextLoads()
这里是示例的完整源代码:link。
如何在 intellij 中解决此问题,以便项目像在命令行中一样干净地编译?
ps:这是intellij中问题的截图:
【问题讨论】:
【参考方案1】:好吧,我完全卸载了有关 java 的所有内容,然后我从零开始安装所有内容,删除所有配置,所有内容。然后就成功了。
【讨论】:
【参考方案2】:你所拥有的是正确的。我无法重现错误,如下面的屏幕截图所示。而且我能够毫无问题地运行您的测试。所以这是一个错误的错误。您可以通过在 IDEA 中或命令提示符下通过 Gradle 确认项目构建来验证这一点。
尝试以下方法:
-
在 Gradle 工具窗口中,单击“刷新所有 Gradle 项目”按钮
根据我所看到的和我的经验,我认为这不会解决问题。但它很快就成功了,值得一试。
IntelliJ IDEA 缓存可能已损坏。转到 *文件 > 使缓存无效/重新启动 *。在对话框窗口中,单击“无效并重新启动”。在 IDEA 重新启动并打开项目后,等待它完成重新索引项目(查看底部的进度)。重新索引完成后,查看问题是否已解决。
我怀疑这会解决问题。
如果上述方法不起作用,则可能是配置不正确。尝试重新创建 IDEA 项目。关闭项目,删除(或归档)
.idea
目录和所有*.iml
文件。然后通过选择build.gradle
文件导入项目。如果您对此不熟悉,请观看 IntelliJ 上的“Working with Gradle in IntelliJ IDEA”视频IDEA documentation page
最后,确保您运行的是两周前发布的最新版 IntelliJ IDEA (v2018.2)。这就是我正在运行的。您使用了很多最新最好的技术(JUnit 5、Kotlin、Spring boot 2.x 和 Spring 5.x),所以旧版本的 IDEA可能有问题。最后,即使您为我工作,我还是建议您在 gradle.properties 中升级到最新版本的 Kotlin (v1.2.60)
我没有收到错误,可以运行测试:
【讨论】:
奇怪的是,我执行了所有 4 个步骤,但仍然出现错误。我可以从 IDE 运行测试也很奇怪,但我还是得到了编译错误。我在 intellij 问题跟踪器中填写了一个错误:youtrack.jetbrains.com/issue/IDEA-196785以上是关于如何修复类型不匹配:@ExtendWith(SpringExtension::class) Class -> Class in intellij?的主要内容,如果未能解决你的问题,请参考以下文章
切换到 64 位 Excel 后如何修复 VBA“类型不匹配”错误