記事ディレクトリ
問題の説明
このクラス (またはこのクラスの継承元のクラス) は「@immutable」としてマークされていますが、そのインスタンス フィールドの 1 つ以上が最終ではありません: SerialsTimer.tasks
問題コード
class SerialsTimer extends StatefulWidget {
late Queue <Task> tasks; // 使用 Queue 来管理任务
SerialsTimer({
Key? key,
required this.tasks,
}) : super(key: key);
State<SerialsTimer> createState() => _SerialsTimerState();
}
問題の原因
Dart は、作成したクラスが @immutable (不変) クラスであると推測します。
この警告は、@immutable (不変) としてマークされたクラスで、インスタンス フィールド (メンバー変数) の 1 つが Final として宣言されていないために発生します。
Dart では、@immutable アノテーションを使用する場合、オブジェクトの不変性を確保するために、クラスのすべてのインスタンス フィールドが Final である必要があります。不変オブジェクトの作成と管理は、より信頼性が高く保守しやすいコードを作成するのに役立ちます。
の解き方
この警告を解決するには、インスタンス フィールドを宣言するときに、そのフィールドを最終としてマークします。
SerialsTimer クラスのタスクフィールドを修正する最終修飾子を追加しました。このようにして、クラスは @immutable の要件を満たします。その他の分野においても、必ず法令を遵守してください。
変更されたソースコード
class SerialsTimer extends StatefulWidget {
final Queue <Task> tasks; // 使用 Queue 来管理任务
const SerialsTimer({
Key? key,
required this.tasks,
}) : super(key: key);
State<SerialsTimer> createState() => _SerialsTimerState();
}
結論 Flutter は、Google が開発したオープンソースの UI ツールキットで、これを使用すると、プラットフォーム固有のコードを大量に記述せずに、さまざまなプラットフォーム上で高品質で美しいアプリケーションを作成できます。 Flutter のあらゆる側面を学び、掘り下げていきます。基礎知識から高度なテクニック、UIデザインからパフォーマンスの最適化まで、一緒に議論して学び、一緒にFlutterの素晴らしい世界に入りましょう!