这里还有一些其他问题相似但完全不同,我需要将其作为一个新问题提出:
我创建了一个空类,我们称之为测试。它没有任何属性或方法。然后我遍历键/值对的映射,动态创建以键命名并包含值的属性......就像这样:
def langMap = [:]
langMap.put("Zero",0)
langMap.put("One",1)
langMap.put("Two",2)
langMap.put("Three",3)
langMap.put("Four",4)
langMap.put("Five",5)
langMap.put("Six",6)
langMap.put("Seven",7)
langMap.put("Eight",8)
langMap.put("Nine",9)
langMap.each { key,val ->
Test.metaClass."${key}" = val
}
现在我可以通过这样创建的新方法访问这些:
Test.metaClass.twoPlusThree = { return Two + Three }
println test.twoPlusThree()
不过,我想做的是从字符串动态加载一组指令,例如“二+三”,动态创建一个方法来评估结果,然后对包含表达式的许多字符串迭代重复此过程我碰巧有。
问题:a)首先,是否有更好,更优雅的方式来做到这一点(基于我提供的信息)?b)假设这条路径是可行的,从字符串动态构造这个闭包的语法是什么,其中字符串引用的变量名仅在此类的方法中有效?
谢谢!