PDA

Просмотр полной версии : уточнение параметров функции при передачи ее как параметра.


dsQuadro
07.03.2012, 01:36
название темы сумбурно, но все же... если в какой то метод одним из параметров передается другой метод, например как в листенерах

к примеру я пишу свой addEventListener(event:Event, someFunc:Function):void{...}, как написать что someFunc должна принимать какие то конкретные параметры, а не все что угодно... какбы задать интерфейс по параметрам для функции... и чтобы это проверялось на этапе компиляции??? или только на этапе выполнения try/catch использовать???

интерфейсы использовать не вариант...

ChuwY
07.03.2012, 01:45
Насколько я знаю, к сожалению, мы не можем указывать в качестве типа параметра функцию с определенной сигнатурой.
Если действительно нужна такая строгость -- то, правда, только передавать какие-то команды с определенным интерфейсом.

gloomyBrain
07.03.2012, 01:46
Передавайте функтор с четко обозначенным интерфейсом. Что-то такое:

public class MyFunctor() {

public function call(/*здесь Ваши параметры с типизацией*/) {

// здесь т, что нужно сделать при вызове, как с обычной функцией
}

}

А дальше в коде замените вызов функци на myFunctorInstance.call(...).

Если вариантов исполнения может быть несколько, сделайте интерфейс IMyFunctor и передавайте конкретный функтор по интерфейсу.

dsQuadro
07.03.2012, 11:06
Понятно... жаль что без интерфейсов никак =( всем спасибо!