getter_not_subtype_setter_types
getter '{0}' 的返回类型 '{1}' 不是其 setter '{3}' 的类型 '{2}' 的子类型。
描述
#当 getter 的返回类型不是同名 setter 的参数类型的子类型时,分析器会生成此诊断信息。
无论 getter 和 setter 在同一类中,还是其中一个在另一个的超类中,子类型关系都是必需的。
示例
#以下代码会生成此诊断信息,因为 getter x
的返回类型是 num
,setter x
的参数类型是 int
,而 num
不是 int
的子类型
dart
class C {
num get x => 0;
set x(int y) {}
}
常见修复
#如果 getter 的类型正确,则更改 setter 的类型
dart
class C {
num get x => 0;
set x(num y) {}
}
如果 setter 的类型正确,则更改 getter 的类型
dart
class C {
int get x => 0;
set x(int y) {}
}