5

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

如果我有:

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 )
4

1 回答 1

6

我在官方 haxe 文档中找到了答案。这里是:

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;
}
于 2012-11-14T19:48:09.820 回答