conflicting_generic_interfaces
类型为 {0} 的“{1}”无法同时实现“{2}”和“{3}”,因为它们的类型参数不同。
描述
#当一个类试图多次实现同一个泛型接口,但类型参数的值不同时,分析器会产生此诊断。
示例
#以下代码会产生此诊断,因为类 C
被定义为同时实现 I<int>
(因为它继承自 A
)和 I<String>
(因为它实现了B
),而 int
和 String
不是相同的类型
dart
class I<T> {}
class A implements I<int> {}
class B implements I<String> {}
class C extends A implements B {}
常见修复方法
#重构类型层次结构以避免这种情况。例如,您可以将其中一个或两个继承类型改为泛型,以便类 C
可以为两个类型参数指定相同的类型
dart
class I<T> {}
class A<S> implements I<S> {}
class B implements I<String> {}
class C extends A<String> implements B {}