unnecessary_null_comparison
操作数不能为 'null',因此条件始终为 'false'。
操作数不能为 'null',因此条件始终为 'true'。
操作数必须为 'null',因此条件始终为 'false'。
操作数必须为 'null',因此条件始终为 'true'。
描述
#当分析器发现等式比较(==
或 !=
)中一个操作数为 null
而另一个操作数不能为 null
时,会产生此诊断信息。此类比较结果总是 true
或 false
,因此没有任何作用。
示例
#以下代码会产生此诊断信息,因为 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);
}