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