Generics Haxe@:泛型导致编译器错误?
下面我有一个非常简单的程序,它有一个泛型类,然后创建一个实例。在编写代码时,我得到一个编译时错误“MyGeneric>应该是MyGeneric\u Int”。当我删除@:generic属性时,它会编译并正常工作。我是否误解了@:generic的用法?这里需要吗?这是在haxe 4.0.5上Generics Haxe@:泛型导致编译器错误?,generics,attributes,haxe,Generics,Attributes,Haxe,下面我有一个非常简单的程序,它有一个泛型类,然后创建一个实例。在编写代码时,我得到一个编译时错误“MyGeneric>应该是MyGeneric\u Int”。当我删除@:generic属性时,它会编译并正常工作。我是否误解了@:generic的用法?这里需要吗?这是在haxe 4.0.5上 @:generic class MyGeneric<T> { public function new (fn:T) { trace(fn); } } cl
@: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);
}
}
@:通用
类MyGeneric
{
新公共功能(fn:T)
{
微量元素(fn);
}
}
复课
{
静态函数main()
{
var tracer=getTracer();
}
公共静态函数getTracer():MyGeneric
{
变量arg:Any=3;
返回getGeneric(arg);
}
@:通用
公共静态函数getGeneric(T):MyGeneric
{
返回新的MyGeneric(T);
}
}
您可以这样做:返回cast getGeneric(arg)代码>虽然这确实有效,但我首先还是成功地发布了@:泛型注释。我正在寻求更多的澄清,以解释为什么会发生这种情况,以及这两种解决方案是否会产生后果。