我正在尝试使用类似的东西使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 尝试使用带引号的标识符解析方法的情况下对文字进行调用?