我无法理解飞镖的这种“怪异”行为。看看上面的示例:
abstract class Swimmer {
int numOfSwim;
Swim();
}
class Human implements Swimmer {
}
当我运行此代码时,没有警告和错误。我用DART_FLAGS='--enable_type_checks --enable_asserts'
开始了dartium。我勒个去?如果实际上没有类,那么该类如何实现接口..看起来Dart有点松散。
可能Dart有一些模式更严格。
答案 0 :(得分:2)
Dart spec州(第38页):
如果具体类没有,则为静态警告 任何超级接口中的方法的实现,除非它 声明自己的noSuchMethod方法(10.10)。
静态警告对于开发人员捕获错误非常有用,但不会干扰Dart程序的执行。另一方面,错误会对程序执行产生影响。您可以在Dart规范的第10页上阅读有关警告和错误之间差异的更多信息。
既然如此,在Dartium中运行代码就可以了,因为缺少方法实现只是一个警告,而不是错误。如果要捕获这些警告,可以使用Dart Analyzer来检查警告和错误。 Dart编辑器和IntelliJ等IDE集成了分析仪,因此您无需手动运行它。
例如,在Dart编辑器中,您的代码将显示以下警告:
缺少setter' Swimmer.numOfSwim'的具体实现, ' Swimmer.Swim'和getter' Swimmer.numOfSwim'