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 子句。