Dart не поддерживает создание экземпляров из параметра универсального типа. Не имеет значения, хотите ли вы использовать именованный конструктор или конструктор по умолчанию (T()
также не работает).
Вероятно, есть способ сделать это на сервере, где доступно dart:mirrors
(отражение) (еще не пробовал), но не во Флаттере или браузере.
Вам нужно будет поддерживать отображение типов на заводские функции
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);
}
Использовать start
:
start acrord32.exe 1.pdf
start acrord32.exe 2.pdf
start acrord32.exe 3.pdf
Или даже (поскольку Johannes Rössel предлагает в комментарии ниже):
start 1.pdf
start 2.pdf
start 3.pdf
Вероятно, работал бы также (в зависимости от Вашего средства просмотра PDF по умолчанию).
Отметьте это при использовании start
необходимо быть осторожными, когда использование заключило аргументы в кавычки, поскольку следующее не будет работать (первый заключенный в кавычки аргумент интерпретируется как заголовок для новой консоли):
start "1.pdf"
Вместо этого необходимо будет сделать следующее:
start "" "1.pdf"
Это - раздражающая причуда start
, но необходимо эффективно предоставить фиктивный заголовок в этом случае для надлежащего открытия указанного файла (даже при том, что заголовок является ненужным, поскольку это не создаст новую консоль).
Вы попробовали, допускает ли Acrobat Reader больше файлов на командной строке, т.е.
start acrord32.exe 1.pdf 2.pdf 3.pdf
Спасибо!
Используя запуск добился цели. Я должен был использовать, запускаются так же много раз как количество документов PDF, которые я хочу открыть. По некоторым причинам
запустите acrord32.exe 1.pdf 2.pdf 3.pdf
открывает только первый документ. Таким образом, я предполагаю, что Acrobat Reader не могла бы допускать больше файлов на командной строке.
Я сплачиваюсь, ценят Ваши ответы.
У меня это работает даже без команды start
. Я часто использую:
c:\path\to\my.pdf
в окнах cmd.exe, и он всегда открывает Acrobat Reader (моя программа просмотра по умолчанию в Windows). В пакетном файле, который я написал для создания PDF-файла с помощью Ghostscript, мои последние две строки:
"%ouptutpath%\%outputfile%.pdf"
"%outputpath%\%outputfile%-optimized.pdf"
, который автоматически открывает оба сгенерированных PDF-файла в двух разных окнах Reader. (Мой % outputpath%
содержит пробелы, в % outputfile%
также могут быть некоторые ...)