跳到主要内容

assignment_to_final_no_setter

类 '{1}' 中没有名为 '{0}' 的 setter。

描述

#

当分析器发现对 setter 的引用,但该类型没有定义 setter,却定义了同名 getter 时,会产生此诊断消息。

示例

#

以下代码会产生此诊断消息,因为在 C 中没有名为 x 的 setter,但存在一个名为 x 的 getter

dart
class C {
  int get x => 0;
  set y(int p) {}
}

void f(C c) {
  c.x = 1;
}

常见修复方法

#

如果您想调用现有的 setter,请纠正名称

dart
class C {
  int get x => 0;
  set y(int p) {}
}

void f(C c) {
  c.y = 1;
}

如果您想调用 setter 但它尚未存在,则声明它

dart
class C {
  int get x => 0;
  set x(int p) {}
  set y(int p) {}
}

void f(C c) {
  c.x = 1;
}