Haxe - 如何将泛型类传递给参数

时间:2016-04-01 05:34:45

标签: generics parameters haxe

function test(cls:Class<Dynamic>) {}

test(Array<Float>); // Unexpected )

我必须传递Array<Float>作为类类型。但是,这失败了:

  

意外)

我怎样才能让它发挥作用?

2 个答案:

答案 0 :(得分:5)

这是不可能的,类似于在调用函数时无法显式指定函数的类型参数(see here)。您只需传递Array

test(Array);

编译的一种方法是使用typedef

typedef FloatArray = Array<Float>;

test(FloatArray);

但是,Class<T>并不真正关心Array的类型参数,因此没有必要这样做:

typedef FloatArray = Array<Float>;
typedef IntArray = Array<Int>;

trace(FloatArray == IntArray); // true

答案 1 :(得分:-1)

试试这个。

@:generic
private function test<T>(type:Class<T>) { 

}