跳至主要内容

prefer_const_constructors_in_immutables

'@immutable' 类中的构造函数应声明为 'const'。

描述

#

当具有 @immutable 注解的类中发现非 const 构造函数时,分析器会产生此诊断信息。

示例

#

以下代码会产生此诊断信息,因为类 C 虽然带有 @immutable 注解,但其构造函数未声明为 const

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

@immutable
class C {
  final f;

  C(this.f);
}

常见修复

#

如果类确实是不可变的,则在构造函数中添加 const 修饰符

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

@immutable
class C {
  final f;

  const C(this.f);
}

如果类是可变的,则移除 @immutable 注解

dart
class C {
  final f;

  C(this.f);
}