2012-02-29 1 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 {} 
関連する問題