跳到主要内容

unnecessary_null_comparison

操作数不能为 'null',因此条件始终为 'false'。

操作数不能为 'null',因此条件始终为 'true'。

操作数必须为 'null',因此条件始终为 'false'。

操作数必须为 'null',因此条件始终为 'true'。

描述

#

当分析器发现等式比较(==!=)中一个操作数为 null 而另一个操作数不能为 null 时,会产生此诊断信息。此类比较结果总是 truefalse,因此没有任何作用。

示例

#

以下代码会产生此诊断信息,因为 x 永远不能为 null,所以比较结果始终评估为 true

dart
void f(int x) {
  if (x != null) {
    print(x);
  }
}

以下代码会产生此诊断信息,因为 x 永远不能为 null,所以比较结果始终评估为 false

dart
void f(int x) {
  if (x == null) {
    throw ArgumentError("x can't be null");
  }
}

常见修复方法

#

如果另一个操作数应该能够为 null,则更改操作数的类型

dart
void f(int? x) {
  if (x != null) {
    print(x);
  }
}

如果另一个操作数确实不能为 null,则移除该条件

dart
void f(int x) {
  print(x);
}