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
我有一个抽象 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