下面,我有一个非常精简的程序,它具有一个通用类,然后为其创建一个实例。在编写代码时,出现编译时错误“ MyGeneric>应该是MyGeneric_Int”。当我删除@:generic属性时,它可以编译并正常工作。我误会了@:generic的用法吗?这里甚至需要吗?这是在haxe 4.0.5上的
@:generic
class MyGeneric<T>
{
public function new (fn:T)
{
trace(fn);
}
}
class Repro
{
static function main()
{
var tracer = getTracer();
}
public static function getTracer():MyGeneric<Any>
{
var arg:Any = 3;
return getGeneric(arg);
}
@:generic
public static function getGeneric<T>(T):MyGeneric<T>
{
return new MyGeneric(T);
}
}
您可以这样做:return cast getGeneric(arg);