动态演员在Haxe

时间:2012-11-14 07:46:52

标签: haxe dynamic-cast

是否可以根据运行时可用的信息将变量转换为其他类型?

如果我有:

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 )

1 个答案:

答案 0 :(得分: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;
}