의 모든 서브 클래스를 찾기?나는 세 다트에서 수업을 다트
편집 :
감사 알렉산드르 Ardhuin이 솔루션은 완벽하게 작동!
import 'dart:mirrors';
class A {}
class B extends A{}
class C extends A{}
class D {}
class E extends C {}
bool isParent(String parent,ClassMirror clazz){
var objectParentName = MirrorSystem.getName(clazz.superclass.simpleName);
if (objectParentName == "Object"){
return parent == "Object";
}
var result = parent == objectParentName;
if (!result){
return isParent(parent,clazz.superclass);
}
return result;
}
List<String> findAllSubclasses(String clazz){
var result = [];
final ms = currentMirrorSystem();
ms.isolate.rootLibrary.classes.forEach((s,c) {
if (isParent(clazz,c)){
result.add(MirrorSystem.getName(c.simpleName));
}
});
return result;
}
main(){
var result = findAllSubclasses('A');
print(result);
}
당신이 실제로 성취하고자하는 것이 궁금합니다. 이것은 귀하의 질문에 대한 대답이 단순한 "아니오"인 사례 중 하나이며, 실제 목표가 무엇인지 모른 채로도 그 이상을 도울 수는 없습니다. –
반사 형 lib를 사용하는 것이 좋습니다. 왜냐하면 dart2js와 함께 사용하는 것이 더 좋으며 다트 팀도 제공하기 때문입니다. – Jonathan