gpt4 book ai didi

java - 将参数从 java 传递到 groovy

转载 作者:行者123 更新时间:2023-11-30 07:08:09 25 4
gpt4 key购买 nike

我有一个很棒的脚本,例如:

import groovy.sql.Sql

Object execute(def params = null) {

def sql = new DBUtils().getConnection()

println "sql params : " + params

...
}

Java 类将调用此脚本,如下所示:

Class scriptClass = new GroovyClassLoader().parseClass( new File(url) ) ;

Object scriptInstance = scriptClass.newInstance() ;

String param = {"test"};

Object obj = scriptClass.getDeclaredMethod("execute", new Class[] {})
.invoke( scriptInstance, new Object[] {param} ) ;

我尝试了各种格式参数,但没有一个起作用。上面的示例将抛出java.lang.IllegalArgumentException:错误的参数数量

有什么想法吗?赞赏。

最佳答案

您没有正确指定参数类型,它应该是:

String param = "test";
Object obj = scriptClass.getDeclaredMethod("execute", new Class[]{Object.class})
.invoke(scriptInstance, new Object[]{param});

确实,如果您调用getDeclaredMethod("execute", new Class[]{}) ,你会得到一个方法execute 无参数,因此它与 invoke 不兼容正如您尝试做的那样使用参数。

关于java - 将参数从 java 传递到 groovy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39706500/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com