2012-11-14 8 views
5

Kann eine Variable basierend auf zur Laufzeit verfügbaren Informationen in einen anderen Typ umgewandelt werden?Dynamischer Cast in Haxe

Wenn ich habe:

interface Foo 
{ 
} 

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

ich so etwas wie dies tun will (Verfahren zur Klarheit vereinfacht):

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

erhalte ich den folgenden Compiler-Fehler:

Unexpected) 

Antwort

6

Ich fand die Antwort in der official haxe documentation. Hier ist es:

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; 
}