从Groovy映射调用一个方法,该方法转换为带有asType的类

时间:2015-10-16 13:03:59

标签: methods groovy interface closures

是否可以像

中那样调用methodTwo()
def map = [methodOne: { return "${methodTwo()}" }, methodTwo: { return "Hey" }] as MyInterface

methodTwo在运行时无法在groovy中找到(似乎它正在定义地图的类中搜索它的定义)

1 个答案:

答案 0 :(得分:2)

您可以先调用声明map变量的方法,然后再引用它:

interface MyInterface {
    def methodOne()
    def methodTwo()
}

def map
map = [
    methodOne: { return "${map.methodTwo()}" }, 
    methodTwo: { return "Hey" }
] as MyInterface

assert map.methodOne() == "Hey"