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 に答える