使用GraalVM从javascript将变量参数传递给java函数

我试图在Corda RPC中调用一个名为
startTrackedFlowDynamic的函数,该函数接受2个参数:

在JAR中打包的startTrackedFlowDynamic(logicType:Class< out FlowLogic< T>>,vararg args:Any?)

调用此函数是从Javascript上下文(使用GraalVM实现),我想调用此函数并将参数传递给从请求对象获取的参数(例如,来自REST API)

例:
如果请求包含数组[:: InitiatorA,iouValue],
我想调用startTrackedFlowDynamic,如:
startTrackedFlowDynamic(:: InitiatorA,iouValue)

如果请求包含数组[:: InitiatorB,abc,xyz]
我想调用startTrackedFlowDynamic,如:
startTrackedFlowDynamic(:: InitiatorB,abc,xyz)

如果请求包含数组[:: InitiatorC]
我想调用startTrackedFlowDynamic,如:
startTrackedFlowDynamic(:: InitiatorC)

TLDR:我想把它作为通用API,而不是为每个不同的Flow调用重写.
我希望能够将来自请求对象的动态数量的参数传递给此函数,而不是硬编码固定数量的参数,并且当参数的数量发生更改时必须更新它

我想要复制的行为的一个示例:

var func = function () {
    console.log(arguments.length);
    for (var i = 0; i < arguments.length; i++) {
        console.log(arguments[i]);
    }
};

func.apply(null, ['::InitiatorA', 'abc', 'xyz'])

有什么建议?

最佳答案 它似乎使用以下JavaScript语法

var argsArray = ['::InitiatorA', 'abc', 'xyz']
startTrackedFlowDynamic(...argsArray)
点赞