Замыкание с типизированными аргументами в Groovy

Я бы хотел более подробно рассказать о своих замыканиях относительно их типов аргументов. Поэтому я бы написал что-то вроде

List<Y> myCollect(List<X> list, Closure<X,Y> clos) { ... }

. Я знаю, что Groovy не будет использовать эту информацию о типе, но Groovy ++ может использовать ее во время компиляции. Можно ли этого добиться (кроме как поместить это в комментарий)?

ОБНОВЛЕНИЕ: The title may sound misleading, but I thought the above example would make it clearer. I'm interested in specifying types of a closure which is the argument of some function. Suppose, I want to redefince the built-in collect. So I'm interested in writing myCollect, not in writing clos. What I want to achieve is get compile time errors

myCollect(['a', 'ab'], { it / 2 }) // compile error
myCollect(['a', 'ab'], { it.size() })  // OK 
12
задан Adam Schmideg 26 July 2013 в 08:58
поделиться