2014-09-03 2 views
4

У меня есть класс в моем проекте со списком, определенным в нем. Можно ли указать each (и все последующие связанные с ним методы, такие как eachWithIndex), чтобы использовать этот Список.Groovy set .each поведение для моего класса

Единственное возможное решение, которое я вижу, - это сделать мой класс продолжением List, чего я бы предпочел не делать.

ответ

4

Вы можете использовать @Delegate преобразования, как показано ниже, которые делегируют эти вызовы методов List:

class Test { 
    @Delegate List myList 
} 

new Test(myList: [1, 2, 3]).each { println it } 

new Test(myList: ['a', 'b', 'c']).eachWithIndex { val, index -> 
    println "$val at $index" 
} 
+1

Это здорово, я знал, что Groovy бы что-то для этого! –

+0

Также следите за техническими примечаниями в API. – dmahapatro

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