跳到主要内容

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 {}