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

Passing variable arguments to a java function from javascript using GraalVM

我正在尝试调用 Corda RPC 中可用的函数,称为 startTrackedFlowDynamic,它接受 2 个参数: startTrackedFlowDynamic(logicType: Class<out FlowLogic<T>>, vararg args: Any?) 打包在 JAR

此函数的调用是从 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)