是否可以像
中那样调用methodTwo()def map = [methodOne: { return "${methodTwo()}" }, methodTwo: { return "Hey" }] as MyInterface
methodTwo在运行时无法在groovy中找到(似乎它正在定义地图的类中搜索它的定义)
答案 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"