首页 > 解决方案 > 如何使用私有构造函数反映导入包中的类?

问题描述

我正在使用该reflectable库来反映导入包中的类型(如analysis_server_clientor flutter)。我可以反思具有公共构造函数的类型,例如Notificationor Request(来自analysis_server_client包)。我通过扩展这些类型然后使用功能来反思这些类型superclassQuantifyCapability

但是,我无法反映具有私有构造函数(如Icons(来自flutter包))的类型,因为我无法扩展它们。有没有办法反映Icons具有私有构造函数的类型?

标签: reflectiondartflutterdart-mirrors

解决方案


我想到了。您必须使用GlobalQuantifyCapabilitywhich 让您声明要生成反射的成员。它也适用于具有私有构造函数的类。一些示例代码:

@GlobalQuantifyCapability(r"^.(SomeClass|SomeEnum)", reflector)
import 'package:reflectable/reflectable.dart';

import 'package:some_package/some_class.dart';
import 'package:some_package/some_enum.dart';

class Reflector extends Reflectable {
  const Reflector() : super(declarationsCapability, ...);
}
const reflector = const Reflector();

推荐阅读