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

mixin_class_declaration_extends_not_object

クラス「{0}」は、「Object」以外のクラスを拡張しているため、ミックスインとして宣言できません。

説明

#

mixin 修飾子が付いているクラスが Object 以外のクラスを拡張している場合に、アナライザーはこの診断を生成します。ミックスインクラスは Object 以外のスーパークラスを持つことはできません。

#

以下のコードは、mixin 修飾子を持つクラス BA を拡張しているため、この診断を生成します。

dart
class A {}

mixin class B extends A {}

一般的な修正

#

クラスをミックスインとして使用したい場合は、スーパークラスを Object に変更してください。明示的に指定するか、extends 句を削除してください。

dart
class A {}

mixin class B {}

クラスが Object 以外のスーパークラスを持つ必要がある場合は、mixin 修飾子を削除してください。

dart
class A {}

class B extends A {}

ミックスインと Object 以外のクラスのサブクラスの両方を必要とする場合は、サブクラスのメンバーを新しいミックスインに移動し、サブクラスから mixin 修飾子を削除し、その新しいミックスインをサブクラスに適用してください。

dart
class A {}

class B extends A with M {}

mixin M {}

サブクラスのメンバーによっては、ミックスインに on 句を追加する必要がある場合があります。