[Flutter] Enumの各要素を文字列に変換する
結論
Enumを拡張して、文字列に変換する関数を追加する。
{Enum名}.{要素名}
でも良い場合は、{Enum名}.{要素名}.toString()
で得られる。
import 'package:flutter/foundation.dart'; enum Animal { dog, cat, bird, } /******************************************/ extension on Animal { String get string => describeEnum(this); } /******************************************/ void main() { print(Animal.dog.runtimeType); // -> Animal print(Animal.dog); // -> Animal.dog print(Animal.dog.toString()); // -> Animal.dog /******************************************/ print(Animal.dog.string.runtimeType); // -> String print(Animal.dog.string); // -> dog /******************************************/ }
参考
Dart enum toString is too verbose · Issue #30021 · dart-lang/sdk · GitHub