mixin_class_declaration_extends_not_object
类 '{0}' 不能声明为 mixin,因为它扩展了一个非 'Object' 的类。
描述
#当一个带有 mixin
修饰符的类扩展了一个非 Object
的类时,分析器会生成此诊断消息。mixin 类不能有非 Object
的超类。
示例
#以下代码会生成此诊断消息,因为带有 mixin
修饰符的类 B
扩展了 A
dart
class A {}
mixin class B extends A {}
常见修复方法
#如果您想将该类用作 mixin,请将其超类更改为 Object
,无论是显式声明还是通过移除 extends 子句。
dart
class A {}
mixin class B {}
如果该类需要具有非 Object
的超类,则移除 mixin
修饰符。
dart
class A {}
class B extends A {}
如果您既需要一个 mixin 又需要一个非 Object
类的子类,则将子类的成员移至新的 mixin 中,从子类中移除 mixin
修饰符,然后将新的 mixin 应用于该子类。
dart
class A {}
class B extends A with M {}
mixin M {}
根据子类的成员,这可能需要在 mixin 中添加一个 on
子句。