获取dart中的所有子类

问题描述 投票:1回答:1

我试图在这篇文章Find all subclasses in dart之后得到给定类的所有子类,如下所示:

import 'dart:mirrors';
class A {}
class B extends A{}

List<Type> getSubclasses(Type type) {
    List<Type> subClasses = [];
    MirrorSystem mirrorSystem = currentMirrorSystem();

    // NoSuchMethodError: Class '_LocalLibraryMirror' has no instance getter 'classes'. ???
    mirrorSystem.isolate.rootLibrary.classes.forEach((s, c) {
        if (c.superclass == type) {
            subClasses.add(c);
        }
    });
    return subClasses;
}

main() {
    var result = getSubclasses(A);
    print(result);
}

但是我收到以下错误:

Unhandled exception: NoSuchMethodError: Class '_LocalLibraryMirror' has no instance getter 'classes'. Receiver: Instance of '_LocalLibraryMirror' Tried calling: classes

飞镖队可能从qazxsw poi中移除了qazxsw poi,有人知道其他选择吗?

我正在使用飞镖版:1.24.3

server dart dart-mirrors
1个回答
3
投票

按照Randal的建议,我可以使用以下代码修复我的问题:

classes

希望这可以帮助某人

© www.soinside.com 2019 - 2024. All rights reserved.