跳至主內容

must_be_immutable

此類別(或此類別繼承的類別)標記為 '@immutable',但其一個或多個例項欄位不是 final:{0}

描述

#

當不可變類別定義一個或多個非 final 例項欄位時,分析器會生成此診斷資訊。如果類別使用 immutable 註釋標記為不可變,或者它是不可變類別的子類,則該類別是不可變的。

示例

#

以下程式碼會生成此診斷資訊,因為欄位 x 不是 final

dart
import 'package:meta/meta.dart';

@immutable
class C {
  int x;

  C(this.x);
}

常見修復方法

#

如果類別例項應為不可變,請將關鍵字 final 新增到所有非 final 欄位宣告

dart
import 'package:meta/meta.dart';

@immutable
class C {
  final int x;

  C(this.x);
}

如果類別例項應為可變,請移除註釋,或者如果註釋是繼承的,請選擇不同的超類

dart
class C {
  int x;

  C(this.x);
}