使用 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)
我正在尝试调用 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)