3
나는 List
을 String
이라고 가정합니다.Dart의 거울을 사용하여 구체적인 유형의 일반 유형 변수를 얻으려면 어떻게해야합니까?
var myList = new List<String>();
내가
myList
가
List
거울을 사용하여
String
의의 것을 알아낼 수있는 방법
?
나는
ClassMirror
의
typeVariables
를 사용하여 시도했지만 거울 그냥 gerneric
List
클래스를 설명하는 것 같다.
InstanceMirror im = reflect(myList); // InstanceMirror on instance of 'List'
ClassMirror cm = im.type; // ClassMirror on 'List'
print(cm.typeVariables['E']) // TypeVariableMirror on 'E'
는 또한 문서에서 이걸 발견하지만 난
originalDeclaration
에 접근하는 것은
NoSuchMethodError
를 포기하지 않는
ClassMirror
인스턴스를 찾을 못하고있다.
최종 ClassMirror의 originalDeclaration
이 유형의 원래 선언에 거울.
대부분의 클래스에서이 클래스는 고유 한 선언입니다. 그러나 generic 클래스의 경우 언 바운드 형식 변수가있는 원래 클래스 선언과 바운드 형식 변수가있는 generic 클래스 인스턴스 사이에는 구별이 있습니다.
FWIW을 추적 할 위치 : http://code.google.com/p/dart/issues/detail?id=7957 무언가가 변경되면 알림을 받기 위해 별표를 표시 할 수 있습니다. –
예제는 더 정확해야하며 예제로 사용하십시오. Dart에서는 유형이 선택 사항이므로 실제 객체 인스턴스화를 표시하려면'var myList = new List()'을 사용해야합니다. –
@SethLadd 답변 해 주셔서 감사합니다. 나는 그에 맞게 나의 예를 바꿨다. 그래서 나는 그 버그가 고쳐지기 전까지는 "불가능할 것"이라고 생각합니다. 그때 이것이 여기에 (받아 들여진) 대답이되어서는 안됩니까? –