1

我正在尝试使用类似的东西使String/对象可调用GString

String.metaClass.call = { println toUpperCase() + " " + it() }

这是MissingMethodException在文字上调用时产生的,尽管并非总是如此:

def a = 'abc'

a{ 2 * 3 }     //ABC 6                     -> OK
'a'{ 2 * 4 }   //ABC 8                     -> OK
'abc'{ 2 * 5 } //MissingMethodException    -> ERROR

错误是:

groovy.lang.MissingMethodException: No signature of method: ConsoleScript11.abc() 
is applicable for argument types: (ConsoleScript11$_run_closure4) 

'a'{ 2 * 4 }我将跳过有效而无效的事实'abc'{ 2 * 5 }。我的问题真的是:有没有一种方法可以在没有 Groovy 尝试使用带引号的标识符解析方法的情况下对文字进行调用?

4

0 回答 0