如何防止编译器抛出以下警告
缺少具体实施的setter' MyClass.field'并且得到了 ' MyClass.field'
以下代码?
{{1}}
答案 0 :(得分:4)
实施noSuchMethod();
当一个类有noSuchMethod()
时,它会实现任何方法。我认为这也适用于getter / setter,因为它们只是特殊的方法(尽管我从未尝试过)。另请参阅here
答案 1 :(得分:2)
出现警告是因为你有一个没有实现其接口的类,并且没有声明 noSuchMethod
方法。
继承该方法是不够的,你必须在类本身中声明它。
只需添加:
noSuchMethod(Invocation i) => super.noSuchMethod(i);
那应该关闭那个班级的警告。
答案 2 :(得分:0)
关于此警告(Dart Spec ) :
**如果具体类在其任何超接口中没有方法的实现,则它是一个静态警告,除非它声明了自己的noSuchMethod方法(10.10)。 **
因此,您可以在field
课程中为getter MockMyClass
创建实现。