У меня есть много объектов одного и того же базового типа. Я хочу создать общую функцию для их создания. Пример кода:Можно ли создать экземпляр класса из динамического var?
class Grid extends Display { ....
class Start extends Display { ....
class MainClass {
Grid grid;
Start start;
....
}
в методе MainClass, вместо этого:
start = new Start();
start.load(PATH);
grid = new Grid();
grid.load(PATH);
....
Я хотел бы сделать что-то вроде этого:
void _newDisplay(dynamicType, Display display) {
display = new dynamicType();
display.load(PATH);
}
_newDisplay(Start, start);
_newDisplay(Grid, grid);
....
Я прочитал http://www.dartlang.org/articles/optional-types/, но не нашел именно что я хотел.
Я также нашел Instantiate a class from a string, но есть комментарий, говорящий: «Примечание: это может не работать при компиляции в JavaScript. Компилятор dart2js еще не полностью поддерживает зеркала». Является ли это «зеркальным» решением единственным доступным для создания динамического экземпляра?
Re: зеркала и dart2js. Мы намерены поддерживать зеркала с dart2js, и мы над этим работаем, но это еще не 100%. Будьте на связи! –