Kotlin / IntelliJ - 编译器找不到正确的函数参数类型

时间:2017-03-10 05:51:48

标签: intellij-idea kotlin

我正在使用 IntelliJ Kotlin 语言(JetBrains)中编写代码,我在编译器上遇到错误编译器找不到函数的正确参数类型,总是说函数接收 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。

1 个答案:

答案 0 :(得分:2)

请检查q变量的类型吗? (导航到它,运行alt + q) 我认为它的类型是CriteriaDelete<*>,并且这些from方法都不能被调用,原因与它们在CriteriaDelete<?>类型的变量上不能用Java相同:我们不能说确切地说,在创建实例时T是什么。

但是,诊断当然可以在这里更好。我在这个

上创建了issue