Дженерики по факту большую часть времени работают на уровне компилирования, чем на рантайме. А если на уровне компиляции невозможно определить тип, то приходится городить костыли. Какие-то языки это могут (c#, java скорее всего тоже). Дарт - нет. Рефлексия очень слабая