跳到主要內容

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;
}