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