メインコンテンツにスキップ

conflicting_generic_interfaces

型引数が異なるため、'{0}' '{1}' は '{2}' と '{3}' の両方を実装できません。

説明

#

クラスがジェネリックインターフェイスを複数回実装しようとし、型引数の値が同じでない場合に、アナライザーはこの診断を生成します。

#

次のコードは、CA を拡張するため I<int> の両方を実装し、B を実装するため I<String> の両方を実装するように定義されているため、この診断を生成しますが、intString は同じ型ではありません。

dart
class I<T> {}
class A implements I<int> {}
class B implements I<String> {}
class C extends A implements B {}

一般的な修正

#

この状況を回避するために、型階層を再設計してください。たとえば、継承された型の 1 つまたは両方をジェネリックにして、C が両方の型引数に同じ型を指定できるようにすることができます。

dart
class I<T> {}
class A<S> implements I<S> {}
class B implements I<String> {}
class C extends A<String> implements B {}