type_parameter_referenced_by_static
静态成员不能引用类的类型参数。
描述
#当静态成员引用类声明的类型参数时,分析器会生成此诊断信息。类型参数仅对类的实例有意义。
示例
#以下代码会产生此诊断信息,因为静态方法 hasType
引用了类型参数 T
dart
class C<T> {
static bool hasType(Object o) => o is T;
}
常见修复方法
#如果该成员可以是实例成员,则移除关键字 static
dart
class C<T> {
bool hasType(Object o) => o is T;
}
如果该成员必须是静态成员,则使其成为泛型成员
dart
class C<T> {
static bool hasType<S>(Object o) => o is S;
}
但请注意,T
和 S
之间没有关系,因此第二个选项改变了原本可能预期的语义。