You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

重写Dart ==运算符触发avoid_renaming_method_parameters警告如何解决

警告触发原因

avoid_renaming_method_parameters lint规则要求重写父类方法时,参数名必须和父类定义的参数名完全一致。
你重写的是Dart根类Object的==运算符,该方法在父类中的原生签名为:

bool operator ==(Object other)

你将参数名从原生定义的other修改为了o,属于参数重命名行为,因此触发该警告。

修复方案

方案1(推荐):对齐父类参数名

直接将方法参数名从o改为other即可,修改后代码如下:

@override
bool operator ==(Object other) {
  if (identical(this, other)) return true;

  return other is Song &&
      other.id == id &&
      other.name == name &&
      other.lyrics == lyrics &&
      other.url == url;
}

修改后警告会自动消除,同时符合Dart官方代码规范。

方案2(特殊场景使用):主动忽略警告

如果有特殊需求必须保留参数名o,可以在方法上方添加忽略注释,跳过当前lint检查:

// ignore: avoid_renaming_method_parameters
@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;
}

内容的提问来源于stack exchange,提问作者Suragch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 08:39:02