Предполагая, что у меня есть List
из String
таких.
var myList = new List<String>();
Как я могу определить, что myList
- это List
из String
, использующих зеркала?
Я пробовал использовать typeVariables
из ClassMirror
, но зеркало, кажется, просто описывает общий класс List
.
InstanceMirror im = reflect(myList); // InstanceMirror on instance of 'List'
ClassMirror cm = im.type; // ClassMirror on 'List'
print(cm.typeVariables['E']) // TypeVariableMirror on 'E'
Я также нашел это в документации, но мне еще предстоит найти ClassMirror
экземпляр, где доступ к originalDeclaration
не вызывает NoSuchMethodError
.
final ClassMirror originalDeclaration
Зеркало на исходной декларации этого типа.
Для большинства классов это их собственное исходное объявление. Однако для универсальных классов существует различие между объявлением исходного класса, которое имеет несвязанные переменные типа, и экземплярами универсальных классов, которые имеют связанные переменные типа.
var myList = new List<String>()
, потому что в Dart типы не являются обязательными, поэтому вы хотите показать фактическое создание объекта. - person Seth Ladd   schedule 17.01.2013