2012-11-14 45 views
5

Có thể truyền một biến sang loại khác dựa trên thông tin có sẵn khi chạy không?Đúc động trong Haxe

Nếu tôi có:

interface Foo 
{ 
} 

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

tôi muốn làm một cái gì đó như thế này (phương pháp được đơn giản hóa cho rõ ràng):

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

tôi nhận được lỗi biên dịch sau:

Unexpected) 

Trả lời

6

Tôi đã tìm thấy câu trả lời trong số official haxe documentation. Dưới đây là:

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; 
} 
Các vấn đề liên quan