下面,我有一个真正精简的程序,该程序具有一个通用类,然后使它成为实例。在编写代码时,出现编译时错误“ 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);
}
}
答案 0 :(得分:1)
您可以执行以下操作:return cast getGeneric(arg);