我需要通过两个参数作为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
答案 0 :(得分:4)
我需要将两个参数传递为
vararg
不可能。根据{{3}}
只能将一个参数标记为vararg
此外,vararg
参数应该是函数声明中的最后一个参数。或作为命名参数(按名称)寻址。
如果vararg参数不是列表中的最后一个,则可以使用命名参数语法传递以下参数的值
答案 1 :(得分:-2)
而不是传递OperationStatus数组,请尝试传递OperationStatus对象