2012-11-14 1 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; 
}