Haxe中的动态转换

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 )
1个回答

6
我在官方的haxe文档中找到了答案,这里是:unsafe-cast
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;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接