我正在编写粘贴到基于Web的系统运行的Groovy脚本。有一个 类可用于在此环境中运行的脚本,我将其称为BrokenClass
。它有一个 错误,它只接受字符串文字作为其第一个参数,但不包含其中包含字符串的变量 。因此,这将工作(它返回一个列表):有没有办法在eval中调用类方法?
BrokenClass.reflist('something', 'name')
但是,如果我尝试使用一个变量作为第一个参数我得到一个错误:
list_name = 'something'
BrokenClass.reflist(list_name, 'name')
这将产生该消息Metadata RefList[something] cannot be accessed
。
我对BrokenClass没有任何控制权(除了提交它的bug)。我想工作 围绕问题是这样的:
list_name = "foo"
list_call = "BrokenClass.reflist(${list_name}, 'name')"
list_values = Eval.me(list_call)
然而,这会产生一个错误:
groovy.lang.MissingPropertyException: No such property: BrokenClass for class: Script1
我尝试添加一个import
到我的字符串,但后来我得到unable to resolve class BrokenClass
。
有没有办法在eval'd字符串中使用BrokenClass
?或者我还没有其他方式 认为解决了BrokenClass.reflist
中的bug?一个非常长的switch
块 已经不存在,因为可能的列表名称会更改。
方法签名BrokenClass.reflist
是:
public static List<Object> reflist(String reflistName, String field);
你能看到BrokenClass的源代码吗? –
不,我不是。该课程以及整个基于网络的系统,或由不同的小组控制。 – khagler
BrokenClass.reflist()的方法签名是什么? –