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