我有一个我正在重写的方法:
@override
bool operator ==(Object o) {
if (identical(this, o)) return true;
return o is Song &&
o.id == id &&
o.name == name &&
o.lyrics == lyrics &&
o.url == url;
}但我收到了flutter_lints的警告:
不重命名重写方法的参数。dart(avoid_renaming_method_parameters)
它在抱怨什么?我该怎么解决呢?
我找到了答案,所以我在下面张贴。
发布于 2021-08-18 04:27:02
当重写接受参数的方法时,应使用与超类中的原始方法相同的参数名称。如果您不知道它们是什么,请查看超类源代码来找出答案。
就你而言,你有:
@override
bool operator ==(Object o) {
// ...
}但是,如果查看超类的源代码(可能是Object,除非有其他类覆盖相等运算符),您将看到以下内容:
external bool operator ==(Object other);因此,要消除警告,应该将o更改为other
@override
bool operator ==(Object other) {
// ...
}发布于 2021-08-18 05:24:26
通常,当您从分析器收到投诉时,您可以搜索警告消息中报告的林特ID。在本例中,这是avoid_renaming_method_parameters。The documentation for the avoid_renaming_method_parameters lint解释了是什么触发了它,以及为什么:
当dartdoc生成文档时,覆盖另一个方法但没有自己的文档注释的
方法将继承被覆盖的方法的注释。如果继承的方法包含参数的名称(方括号中),那么dartdoc无法正确地链接它。
因此,即使位置参数的名称通常并不重要,如果两者都发生,avoid_renaming_method_parameters lint也会触发:
https://stackoverflow.com/questions/68826555
复制相似问题