メインコンテンツにスキップ

subtype_of_sealed_class

クラス「{0}」は sealed クラスであるため、拡張、with、または implements できません。

説明

#

この診断は、sealed クラス(sealed アノテーションが付いているか、sealed クラスを継承または with しているクラス)が、クラスまたは mixin 宣言の extendsimplements、または with 句で参照された場合に生成されます。ただし、その宣言が sealed クラスと同じパッケージにない場合に限ります。

#

分析対象のパッケージ以外のパッケージに以下のライブラリが含まれている場合

dart
import 'package:meta/meta.dart';

class A {}

@sealed
class B {}

以下のコードは、B と同じパッケージにない C が sealed クラス B を拡張しているため、この診断を生成します。

dart
import 'package:a/a.dart';

class C extends B {}

一般的な修正

#

クラスが sealed クラスのサブタイプである必要がない場合は、宣言を変更してサブタイプにならないようにしてください。

dart
import 'package:a/a.dart';

class B extends A {}

クラスが sealed クラスのサブタイプである必要がある場合は、sealed クラスを sealed でなくすように変更するか、サブクラスを sealed クラスと同じパッケージに移動してください。