跳到主要内容

cast_from_nullable_always_fails

此类型转换将始终抛出异常,因为可空的局部变量“{0}”未赋值。

描述

#

当具有可空类型的局部变量未赋值并被转换为非可空类型时,分析器会产生此诊断。由于该变量未赋值,其默认值为 null,导致类型转换抛出异常。

示例

#

以下代码会产生此诊断,因为变量 x 在已知其值为 null 时被转换为非可空类型 (int)

dart
void f() {
  num? x;
  x as int;
  print(x);
}

常见修复方法

#

如果变量在类型转换前期望有一个值,则添加初始化或赋值

dart
void f() {
  num? x = 3;
  x as int;
  print(x);
}

如果变量不期望被赋值,则移除类型转换

dart
void f() {
  num? x;
  print(x);
}