java - Scala 无法解析构造函数

标签 java scala constructor

我正在利用 Scala 和 Java 之间的互操作性,并使用下面的代码使用 Scala 来实例化用 Java 编写的同一项目中的类。 CommandExecutor 参数是从父类继承的。

class IdmIdentityServiceImpl extends ServiceImpl with IdmIdentityService {
    override def createNativeUserQuery: NativeUserQuery = {
        new NativeUserQueryImpl(commandExecutor)
      }
}

在实例化 NativeUserQueryImpl 时出现错误,提示无法解析构造函数

NativeUserQueryImpl 是用 Java 编写的,但我一直在阅读有关 Java 和 Scala 之间的互操作性的内容,并且感觉它应该可以工作。

这是 NativeUserQueryImpl 类,它在其构造函数之一中接收 CommandExecutor 类型。该类来自 flowable-engine 库。

public class NativeUserQueryImpl extends AbstractNativeQuery<NativeUserQuery, User> implements NativeUserQuery {

  private static final long serialVersionUID = 1L;

  public NativeUserQueryImpl(CommandContext commandContext) {
    super(commandContext);
  }

  public NativeUserQueryImpl(CommandExecutor commandExecutor) {
    super(commandExecutor);
  }

  // results ////////////////////////////////////////////////////////////////

  public List<User> executeList(CommandContext commandContext, Map<String, Object> parameterMap, int firstResult, int maxResults) {
    return commandContext.getUserEntityManager().findUsersByNativeQuery(parameterMap, firstResult, maxResults);
  }

  public long executeCount(CommandContext commandContext, Map<String, Object> parameterMap) {
    return commandContext.getUserEntityManager().findUserCountByNativeQuery(parameterMap);
  }

}

编辑:

完全错误

Error:(31, 5) overloaded method constructor NativeUserQueryImpl with alternatives:
  (x$1: org.flowable.idm.engine.impl.interceptor.CommandExecutor)org.flowable.idm.engine.impl.NativeUserQueryImpl <and>
  (x$1: org.flowable.idm.engine.impl.interceptor.CommandContext)org.flowable.idm.engine.impl.NativeUserQueryImpl
 cannot be applied to (org.flowable.engine.impl.interceptor.CommandExecutor)
    new NativeUserQueryImpl(commandExecutor)

最佳答案

从原始问题中发布的完整错误来看,从父类ServiceImpl继承的CommandExecutor似乎在库中有两个不同的版本

org.flowable.idm.engine.impl.interceptor.CommandExecutororg.flowable.engine.impl.interceptor.CommandExecutor 其中细微的区别在于,一个来自 idm 包,另一个则不是。

将 ServiceImpl 从第二个包更改为第一个包,更新传入的 CommandExecutor 参数,并修复问题。

关于java - Scala 无法解析构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41810996/

相关文章:

c++ - 指针初始化覆盖值

c++ - 我一直收到 -2 作为我的更新工资

java - 改进 GoogleAppEngine Spring Web 应用程序启动时间

java - 如何用JAVA获取 Crystal 报表参数名称

java - 如何在不运行App(main)的情况下初始化App的成员?

regex - 在 Scala 中删除变音符号

javascript - Setter/Getter 对此

java - Java 中 Web 服务的用户身份验证

java - 从一串数字中获取一个 int 数组

scala - 抑制特定范围内未使用的警告