subtype_of_sealed_class
類 '{0}' 不應被擴充套件(extend)、混入(mixin)或實現(implement),因為它是一個密封類。
描述
#當密封類(即帶有 sealed 註解或繼承/混入了密封類的類)在類或 mixin 宣告的 extends, implements 或 with 子句中被引用,並且該宣告與密封類不在同一個包中時,分析器會生成此診斷資訊。
示例
#假設有一個庫,位於正在分析的包之外,其中包含以下內容
dart
import 'package:meta/meta.dart';
class A {}
@sealed
class B {}以下程式碼會生成此診斷資訊,因為類 C 擴充套件了密封類 B,而 C 與 B 不在同一個包中。
dart
import 'package:a/a.dart';
class C extends B {}常見修復方法
#如果該類不需要成為密封類的子型別,則修改宣告使其不成為其子型別。
dart
import 'package:a/a.dart';
class B extends A {}如果該類需要成為密封類的子型別,那麼或者修改密封類使其不再是密封類,或者將該子類移動到與密封類相同的包中。