作成しているアプリのデータは、Firestoreに保存するようにしています。
Firestoreからリストやマップを取得した際に、List<dynamic>や、Map<String, dynamic>となっていました。
要素をStringやIntに変換するやり方が、私はあまり見たことのない書き方だったので備忘も兼ねてご紹介します!
変換には、castメソッドを使用する
Flutter(Dart)にて、リストやマップの要素を変換する場合には、castというメソッドを使用します。
Listの要素を変換する
NG例
List<dynamic> list1 = ['blue', 'goat'];
List<String> list2 = list1 as List<String>; //エラーです
OK例
List<dynamic> list1 = ['blue', 'goat'];
List<String> list2 = list1.cast<String>(); // 変換成功!
Mapの要素を変換する
NG例
Map<String, dynamic> map1 = {'blue': 'goat'};
Map<String, String> map2 = map1 as Map<String, String>; // エラーです
OK例
Map<String, dynamic> map1 = {'blue': 'goat'};
Map<String, String> map2 = map1.cast<String, String>(); // 変換成功!