世界最大級のオンライン学習サービス「Udemy(ユーデミー)」とは?

【Flutter】Error: Cannot invoke a non-‘const’ constructor where a const expression is expected.

Flutterで開発を進めている際に次のようなエラーが発生した場合の対処法を解説していきます。

Error: Cannot invoke a non-'const' constructor 
where a const expression is expected.
Try using a constructor or factory that is 'const'.
目次

原因

Error: Cannot invoke a non-'const' constructor 
where a const expression is expected.
Try using a constructor or factory that is 'const'.

上のエラー文を読み解くと「constを宣言しているのにコンパイル時に値が代入されていないから、コンパイルの時点で値が定まっている式を使用してください」を意味します。

分かりやすく解説すると、constを宣言した定数ではコンパイル時に初期化されてしまうのに、ビルド時に定まる値で初期化しているためエラーが発生していることを示しています。

対処法

対処法の結論を言うと、constの代わりにfinalを宣言することでエラーは解消されるはずです。

というのも今回問題となっていたのがコンパイル時に定まっていない値(ビルド時に定まる値)をconstで宣言した定数に代入したためにエラーが発生していました。

よってビルド時に初期化されるfinalを宣言することでエラーが解消されます。

まとめ

今回はfinalconstの性質に関わるエラーの対処方法を解説しました。

ぜひこの機会に次の解説記事で「定数」の知識を深めてみてください。

目次