Это работает в Dart-VM:
final List<String> names = [ "Bob", "JOE" ];
final InstanceMirror instanceMirror = reflect(names);
final Symbol function = new Symbol("[]");
final InstanceMirror getField = instanceMirror.invoke(function,[ 1 ]);
context = getField.reflectee;
_logger.info("Value $context"); // Shows JOE
но это не удается, если я скомпилирую его в JS. Сообщение об ошибке: `NoSuchMethodError: метод не найден: '[]' Получатель: Экземпляр 'JSArray' Аргументы: [1]'
Я также пробовал использовать elementAt вместо [], но затем я получаю: Unsupported operation: Can't use 'elementAt:1' in reflection because it is not included in a @MirrorsUsed annotation.
@MirrorsUsed
? Это работает, когда вы создаете JS с помощьюpub build --mode=debug
? - person Günter Zöchbauer   schedule 15.07.2015const Symbol(...)
вместоnew Symbol(...)
. - person Florian Loitsch   schedule 19.07.2015