2012-11-14 16 views
5

実行時に利用できる情報に基づいて別の型に変数をキャストすることは可能ですか?私が持っている場合はHaxeの動的キャスト

は:

interface Foo 
{ 
} 

class Bar implements Foo 
{ 
    public function new() 
    { 
    } 
} 

を私は(メソッドを明確にするために簡略化された)このような何かをしたい:

public static function dynamicCast<T : Foo>(target : Foo, cls : Class<T>) : T 
{ 
    var ret : T = cast(pTarget, cls); 
    return ret; 
} 

私は、次のコンパイラエラーを取得:

Unexpected) 

答えて

6

答えはofficial haxe documentationです。ここにあります:

public static function dynamicCast<T : Foo>(target : Foo, cls : Class<T>) : T 
{ 
    if(Std.is(target, cls)) 
    { 
     var ret : T = cast target; 
     return ret; 
    } 
    return null; 
}