小编luc*_*shl的帖子

在dart中查找所有子类

我在飞镖中有三个课程:

class A {}

class B extends A{}

class C extends A{}
Run Code Online (Sandbox Code Playgroud)

有一种方法可以从A获取所有子类吗?

编辑:

感谢Alexandre 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(); …
Run Code Online (Sandbox Code Playgroud)

reflection inheritance dart dart-mirrors

7
推荐指数
1
解决办法
611
查看次数

标签 统计

dart ×1

dart-mirrors ×1

inheritance ×1

reflection ×1