跳至主内容

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