首页 文章

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

提问于
浏览
1

我正在使用 IntelliJKotlin 语言(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 回答

  • 2

    你能检查一下 q 变量的类型吗? (导航到它,运行alt q)我想它的类型是 CriteriaDelete<*> ,并且这些 from 方法都不能被调用,因为他们不能在Java上对 CriteriaDelete<?> 类型的变量进行调用:我们不能确切地说是什么创建实例时 T 在那里 .

    但是,诊断当然可以更好 . 我已经创建了issue

相关问题