intellij-idea - Kotlin/IntelliJ-编译器无法找到函数的正确参数类型

标签 intellij-idea kotlin

我正在使用 IntelliJ 用(JetBrains的) Kotlin 语言编写代码,并且在编译器上遇到错误,编译器无法找到函数的正确参数类型,总是说该函数接收 Nothing 参数。

有人知道是什么问题吗?

Print Screen showing the error on IntelliJ IDE

在该图中,控制台显示了编译器错误,但屏幕中心的帮助显示IntelliJ可以找到函数的正确参数类型,而编译器则找不到。

====编辑=========================================

Java代码是:

  @Transactional
  public int deletar(BuscaInfo info) {

    // ----  Criando a busca ao banco:
    CriteriaBuilder cb = em.getCriteriaBuilder();
    CriteriaDelete query = cb.createCriteriaDelete( info.classe );
    Root root = query.from( info.classe );

    // Cláusula WHERE do banco:
    Predicate[] preds = WhereBuilder.build(cb, root, info.where);
    if (preds.length < 1) {
      throw new MsgException(JsonResponse.ERROR_EXCECAO,null,"Os parâmetros de filtragem da QueryString não são válidos.");
    }
    query.where(preds);


    // A busca ao banco:
    int qtd = em.createQuery(query).executeUpdate();
    return qtd;
  }

info.classe的类型为Class<?>

使用Hibernate 5.x和JPA 2.1 API进行编译。
该代码适用于WildFly 9.x和10.x。

最佳答案

您能否检查q变量的类型? (导航至运行alt + q)
我想它的类型是CriteriaDelete<*>,并且出于与Java中无法使用from类型的变量相同的原因,不能调用这些CriteriaDelete<?>方法:我们无法确切地说出创建实例时存在的T

但是,当然可以在这里进行诊断。我已经在上面创建了issue

关于intellij-idea - Kotlin/IntelliJ-编译器无法找到函数的正确参数类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42711192/

相关文章:

intellij-idea - 使用Dart进行IntelliJ/WebStorm文件搜索

php - 如何使用 IntelliJ Idea 9 创建 PHP 项目?

java - Intellij JavaFX 与 Java 项目的 .exe 文件

intellij-idea - 如何找到 IntelliJ Gradle 项目窗口中可见的 Gradle 任务的源代码?

java - Intellij断点报告方法抛出 'java.lang.ClassNotFoundException'异常即使变量存在

java - Kotlin 不识别 Java 保留关键字

java - Eclipse 与 IntelliJ 中的类路径

java - 如何将回调函数从Java传递到Kotlin类

android - 上传视频时出现问题 : Stream was reset: NO_ERROR

Kotlin 代码在不使用默认应用程序的情况下从应用程序内发送短信