8

クラス参照を渡して、関数でインスタンス化しようとしています。これは機能しません:

function foo(myClassRef:Class):Void {
    var myVar = new myClassRef();
}
foo(MyClass);

を与えUnexpected (ます。

これはHaxe 3で可能ですか?

4

2 に答える 2

4

Haxe3とHaxe2で可能

function foo<T>(myClassRef:T):Void {
var myVar = new T();

}

注: new T() を機能させるには、Haxe3 クラス (foo が実装されている場所) を @:generic にする必要があります。

Haxe2 は別の話です。

function foo<T>(myClassRef:Class<T>):Void {
var myVar = Type.createEmptyInstance(Type.getClass(myClassRef));

}

于 2013-08-13T20:55:03.783 に答える