Generics 在IntelliJ中扩展泛型类并重写Haxe中的方法

Generics 在IntelliJ中扩展泛型类并重写Haxe中的方法,generics,intellij-idea,haxe,Generics,Intellij Idea,Haxe,我正在学习Haxe和HaxeFlixel,但在泛型方面遇到了障碍 我有一个泛型超类,其中包括一个方法,该方法接受并返回一个泛型参数T。在该超类的一个特定子类中,我希望重写该方法以稍微增强其行为。在Java中,这是没有问题的,因为: public class A<T> { public T doStuff(T t) { return t; } } public class B extends A<String> { public String doSt

我正在学习Haxe和HaxeFlixel,但在泛型方面遇到了障碍

我有一个泛型超类,其中包括一个方法,该方法接受并返回一个泛型参数T。在该超类的一个特定子类中,我希望重写该方法以稍微增强其行为。在Java中,这是没有问题的,因为:

public class A<T> {
  public T doStuff(T t) {
    return t;
  }
}

public class B extends A<String> {
  public String doStuff(String s) {
    System.out.println(s)
      return s;
   }
}
这可以正确编译和运行。但是,当我尝试在Haxe中执行基本相同的操作时:

class A<T> {
  public function doStuff(t : T) : T {
    return t;
  }
}

class B extends A<String> {
  public override function doStuff(s : String) : String { //Compilation error
    trace(s);
    return s;
  }
}
IntelliJ在arg类型和返回类型的标记行上显示错误,并显示消息

类型字符串与T不兼容

与返回类型字符串不兼容!=T


然而,无论如何它都可以编译。IntelliJ中的Haxe设置是否不正确,或者这是Haxe支持中的一个错误?

您的代码很好。这是IntelliJ插件中的一个bug

IMHO,您可以尝试使用另一个IDE,对于Haxe来说,这不是目前最好的IDE,如果您检查存储库,它将不再被维护。
您可以尝试Windows或Windows/Linux/Mac。

您的代码很好。这是IntelliJ插件中的一个bug

IMHO,您可以尝试使用另一个IDE,对于Haxe来说,这不是目前最好的IDE,如果您检查存储库,它将不再被维护。
你可以试试Windows或Windows/Linux/Mac。

不知道Haxe,但说基本类型是Bool、Float和Int。[……]基本类型不是Haxe中的类。似乎T不能是基本类型,类似于T不能是Java原语,例如int。这只是一个MVC,我的真实示例是使用不同的非简单类;同样的问题。我将对其进行编辑,这样简单/非简单类型就不重要了。您的示例在动态目标上编译得很好,您是在静态cpp上编译的吗?您使用的是哪个版本的haxe?静态编译也很好,我猜还有另一行会导致错误。@MihailIgnatiev感谢您的双重检查,因为您是对的,它确实可以编译。我现在的问题是,为什么intelliJ在编译时仍将其标记为错误?它不知道Haxe,但表示基本类型是Bool、Float和Int。[……]基本类型不是Haxe中的类。似乎T不能是基本类型,类似于T不能是Java原语,例如int。这只是一个MVC,我的真实示例是使用不同的非简单类;同样的问题。我将对其进行编辑,这样简单/非简单类型就不重要了。您的示例在动态目标上编译得很好,您是在静态cpp上编译的吗?您使用的是哪个版本的haxe?静态编译也很好,我猜还有另一行会导致错误。@MihailIgnatiev感谢您的双重检查,因为您是对的,它确实可以编译。我现在的问题是,为什么intelliJ在编译时仍将其标记为错误