无法使用Java中的varargs调用kotlin函数

时间:2019-08-08 07:19:07

标签: android kotlin

我需要通过两个参数作为varargs typesList operationStatus )。 此处代码:

fun getOperationsList(
        vararg typesList: OperationType,
        operationStatus: OperationStatus,
        from: Date, to: Date,
        callback: Callback<List<Operation>>
    ) {

我需要从Java代码中调用它:

以下Java代码:

Date[] selectedPeriod = getSelectedPeriod();
        TransportService.INSTANCE.getOperationsList(new OperationType[]{OperationType.PAYMENT, OperationType.PAYOUT}
                , new OperationStatus[]{OperationStatus.EXECUTED, OperationStatus.CREATED}, selectedPeriod[0], selectedPeriod[1],

但是我得到了编译错误:

Wrong 2nd argument type. Found: 'OperationStatus[]', required: 'OperationStat

2 个答案:

答案 0 :(得分:4)

  

我需要将两个参数传递为vararg

不可能。根据{{​​3}}

  

只能将一个参数标记为vararg

此外,vararg参数应该是函数声明中的最后一个参数。或作为命名参数(按名称)寻址。

  

如果vararg参数不是列表中的最后一个,则可以使用命名参数语法传递以下参数的值

答案 1 :(得分:-2)

而不是传递OperationStatus数组,请尝试传递OperationStatus对象