IntelliJ 报告抽象 class 缺少具体方法的实现,但方法是在抽象 class 中实现的?

IntelliJ reporting that abstract class is missing implementation of concrete method, but method is implemented in abstract class?

我有一个抽象 Dart class,其中包含一些抽象方法和一个具体的实现方法,我希望在所有子class 中保持一致。

IntelliJ 的 Dart 分析系统在子classes 中报告我实现的方法不存在具体实现——尽管我可以看到抽象有具体实现。

我也尝试在我的 subclass 中实现该方法并调用 super class,但据报告也没有实现。摘要 class 和子 class 都在同一个文件中。

abstract class Exporter {
  List<String> getHeaderRow();
  List<dynamic> getEntryAsRow(EntriesData entry);

  /// Concrete implementation
  dynamic getVal(dynamic value) {
    return null;
  }
}

// ExpenseReport underlined in red: missing concrete implementation of getVal
class ExpenseReport implements Exporter {
  List<String> getHeaderRow() {
    return [];
  }

  List<dynamic> getEntryAsRow(EntriesData entry) {
    return [];
  }

//  dynamic getVal(dynamic value) {
//    super.getVal(value); // IntelliJ reports "getval" as abstract in superclass
//  }

}

class ExpenseReport implements Exporter

你的意思是你的 ExpenseReport 实现了 Exporter 的接口,这反过来意味着它必须实现在 Exporter 中声明的所有方法。

如果你想从抽象导出器继承实现的方法,你需要像这样扩展它:

class ExpenseReport extends Exporter