reflection - 如何使用私有构造函数反映导入包中的类?
问题描述
我正在使用该reflectable
库来反映导入包中的类型(如analysis_server_client
or flutter
)。我可以反思具有公共构造函数的类型,例如Notification
or Request
(来自analysis_server_client
包)。我通过扩展这些类型然后使用功能来反思这些类型superclassQuantifyCapability
。
但是,我无法反映具有私有构造函数(如Icons
(来自flutter
包))的类型,因为我无法扩展它们。有没有办法反映Icons
具有私有构造函数的类型?
解决方案
我想到了。您必须使用GlobalQuantifyCapability
which 让您声明要生成反射的成员。它也适用于具有私有构造函数的类。一些示例代码:
@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();
推荐阅读
- mongodb - Mongodb $ne 日期查询未按预期工作
- batch-file - 将 2 个批处理文件合并为 1 个,但让它们在 2 个命令窗口中运行
- bash - 将 bash 数组的输出拆分为行
- python - 在python中动态创建变量
- spring - Spring cloud kafka:生产者的 RecordTooLargeException
- javascript - 在 Vue CLI 服务 3 中合并 WebPack 配置
- javascript - 无法使用自定义组件在我的 React 应用程序中加载多个地图
- r - 数据框 R - 根据文本组合减少以排除某些行
- vba - VBA 运行时错误 424:尝试删除工作表中的空白行时需要对象
- sql - SQL 插入行的顺序是否重要?