跳到主要內容

mixin_inherits_from_not_object

類 '{0}' 不能用作 mixin,因為它繼承了 'Object' 以外的類。

描述

#

當一個繼承了除 Object 之外的類的類被用作 mixin 時,分析器會產生此診斷。

示例

#

以下程式碼產生此診斷,因為類 B 繼承了 A,但被 C 用作 mixin

dart
//@dart=2.19
class A {}

class B extends A {}

class C with B {}

常見修復

#

如果用作 mixin 的類可以更改為繼承 Object,則更改它

dart
//@dart=2.19
class A {}

class B {}

class C with B {}

如果用作 mixin 的類不能更改,並且使用它的類繼承了 Object,則直接繼承被用作 mixin 的類

dart
class A {}

class B extends A {}

class C extends B {}

如果該類不繼承 Object,或者你想在其他地方也能混入 B 的行為,那麼建立一個真正的 mixin

dart
class A {}

mixin M on A {}

class B extends A with M {}

class C extends A with M {}