の異なる種類を作成し、ディスパッチテーブルを作成することができます。そして、は、どのように私はクラスの束定義した場合、オブジェクト
class A {
final List<int> value;
A(this.value);
static make(List<int> value) => new A(value);
}
// more class defs here
class Z {
final List<String> value;
Z(this.value);
static make(List<String> value) => new A(value);
}
をタイプは何のメソッドを持っていないので、動作しません、次の
Map<int, Type> typeMap = {0: A, 25: Z};
new typeMap[0]([1, 2, 3])
しかし、次のように動作します。静的なmakeメソッドを作成するには、余分な作業が必要です。
Map<int, Function> funcMap = {0: A.make, 25: Z.make};
funcMap[0]([1, 2, 3])
これを行うより良い方法はありますか?
https://pub.dartlang.org/packages/source_gen、https://pub.dartlang.org/packages/reflectableまたはブラウザ用でない場合は「dart:mirrors」(ミラー付きdart2jsはコードの膨張を引き起こす可能性があります)結果のJS出力ファイルの場合)。 –