2012-02-29 53 views
0

我不认为这是可能的,但有没有办法验证回调接受的参数。例如有人通过我回调“mycallback”,我想断言它接受一个参数字符串。在Actionscript中提供的回调函数中验证参数

public function addHandler(handler : Function) : void{ 
    //pseudo code 
    Assert.functionAcceptsArguments(handler, String); 
} 

干杯

回答

2

你就是不行。如果您有一些对象作为参数,您可以使用describeType,它也会返回有关方法的信息。但是Function只是一个没有参数信息的函数。

为了确保您得到正确的方法签名,您可以传递类型化对象而不是函数。例如

interface Bla { 
    funciton invoke(value:String):void; 
} 

function addHandler(handler:Bla):void {}