2015-10-16 2 views
2

Можно ли назвать methodTwo(), как вВызов метода из Groovy карты преобразованной в класс с asType

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

methodTwo не может быть найден во время выполнения с помощью Groovy (кажется, что она ищет его определение внутри класса, в котором была определена карта)

+0

Post 'MyInterface' код и ошибки вы получение. – Will

ответ

2

вы можете назвать метод объявления переменной map раньше, а затем ссылаться на него:

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

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

assert map.methodOne() == "Hey" 
+0

Работаю отлично! – Andrea

Смежные вопросы