首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dart:不要重命名重写方法的参数(avoid_renaming_method_parameters)

Dart:不要重命名重写方法的参数(avoid_renaming_method_parameters)
EN

Stack Overflow用户
提问于 2021-08-18 04:27:02
回答 2查看 917关注 0票数 1

我有一个我正在重写的方法:

代码语言:javascript
复制
@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)

它在抱怨什么?我该怎么解决呢?

我找到了答案,所以我在下面张贴。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-08-18 04:27:02

当重写接受参数的方法时,应使用与超类中的原始方法相同的参数名称。如果您不知道它们是什么,请查看超类源代码来找出答案。

就你而言,你有:

代码语言:javascript
复制
@override
bool operator ==(Object o) {
  // ...
}

但是,如果查看超类的源代码(可能是Object,除非有其他类覆盖相等运算符),您将看到以下内容:

代码语言:javascript
复制
external bool operator ==(Object other);

因此,要消除警告,应该将o更改为other

代码语言:javascript
复制
@override
bool operator ==(Object other) {
  // ...
}
票数 2
EN

Stack Overflow用户

发布于 2021-08-18 05:24:26

通常,当您从分析器收到投诉时,您可以搜索警告消息中报告的林特ID。在本例中,这是avoid_renaming_method_parametersThe documentation for the avoid_renaming_method_parameters lint解释了是什么触发了它,以及为什么:

当dartdoc生成文档时,覆盖另一个方法但没有自己的文档注释的

方法将继承被覆盖的方法的注释。如果继承的方法包含参数的名称(方括号中),那么dartdoc无法正确地链接它。

因此,即使位置参数的名称通常并不重要,如果两者都发生,avoid_renaming_method_parameters lint也会触发:

  • 参数名与重写的方法的.
  • 不同,重写不提供自己的dartdoc注释.
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68826555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档