#flutter #dart
#flutter #dart
Вопрос:
Я хотел бы создать экземпляр объекта с универсальным типом в Dart.
Пока что нет ничего сложного. Вот как я обычно это делаю:
MyClass <MyType> x = new MyClass <MyType> ();
Однако здесь у меня несколько особый случай. Тип «MyType», который я хочу использовать, содержится в переменной.
И там я не вижу, как выполнить создание экземпляра.
Я указываю, что это для проекта Flutter.
Не могли бы вы мне помочь, пожалуйста?
Комментарии:
1. Не могли бы вы предоставить немного больше информации по вашему вопросу? Я не понимаю, что вы подразумеваете под «тип содержится в переменной».
Ответ №1:
Таким образом, вы можете создать универсальный класс и настроить его в соответствии с вашими потребностями:
class GenericClass<T> {
T t;
T getModel() => t;
void setModel(T t) => this.t = t;
}
Вы также можете определить его тип, чтобы расширить свой пользовательский интерфейс:
class GenericClass<T extends CustomModel>{
...
}
Для использования просто получите экземпляр из класса, подобного этому:
GenericClass<int> intClass = new GenericClass();
Надеюсь, это было полезно для вас 🙂
Ответ №2:
Нет пути без использования чего-либо отражающего, например dart:mirrors
, для перехода от строки к типу. Это сделано специально, чтобы обеспечить более продуктивную работу с деревом и оптимизацию.
Комментарии:
1. Спасибо. Но dart: mirros не существует для проекта flutter. Я использую отражаемый. Мне нужен фрагмент кода.
2. Скоро. Скоро у нас будут макросы. И это позволит намного больше размышлений во время компиляции!