Dart не поддерживает создание экземпляров из параметра универсального типа.Не имеет значения, хотите ли вы использовать именованный конструктор или конструктор по умолчанию (T()
также не работает).
Возможно, существует способ сделать это на сервере, где dart:mirrors
(отражение)доступен (еще не пробовал), но не во Flutter или в браузере.
Вам нужно будет поддерживать карту типов с заводскими функциями
void main() async {
final double abc = 1.4;
int x = abc.toInt();
print(int.tryParse(abc.toString().split('.')[1]));
// int y = abc - x;
final t = make<Test>(5);
print(t);
}
abstract class Interface {
Interface.func(int x);
}
class Test implements Interface {
Test.func(int x) {}
}
/// Add factory functions for every Type and every constructor you want to make available to `make`
final factories = <Type, Function>{Test: (int x) => Test.func(x)};
T make<T extends Interface>(int x) {
return factories[T](x);
}