flutter - Flutter - Dart - Reflectable 包:如何:获取类字段类型?从类/类型实例化对象?使用 Reflectable 设置字段值
问题描述
我开始知道飞镖镜在颤振中被禁用,但希望可能有一些替代方法来实现。不能在颤动中禁用镜子,这是一个重要且必须具备的功能。
import 'package:reflectable/mirrors.dart';
import 'package:reflectable/reflectable.dart';
const reflector = const Reflector();
class Reflector extends Reflectable
{
const Reflector() : super(
invokingCapability,
typingCapability,
reflectedTypeCapability,
);
}
@reflector
class Dictionary
{
String english, myLang;
int index;
}
main() {
test();
}
test()
{
ClassMirror classMirror = reflector.reflectType(Dictionary);
classMirror.declarations.values.forEach((field)
{
VariableMirror variableMirror = field;
/*??????????????????????????????????????????
Now How To Get Field types i.e. String & int
How to instantiate class object
How to set fields values
???????????????????????????????????????????*/
});
}
解决方案
到目前为止,我能够知道字段类型:
ClassMirror classMirror = reflector.reflectType(Dictionary);
VariableMirror variableMirror = classMirror.declarations["english"] as VariableMirror;
Type type = variableMirror.dynamicReflectedType;
print("field: " + variableMirror.simpleName + " has type: " + type.toString());
现在剩下的:运行时对象实例化?如何设置实例化对象的字段值?
推荐阅读
- java - fromdate 小于 todate 日期选择器
- .net - powershell 和 .net 对象类型不同
- javascript - 如何将值从 javascript 传递到我的 php 函数 codeigniter
- c++ - 返回无符号字符数组的值会引发 SIGABRT 错误
- ios - Firebase App crashed on launch when made active from background
- python - 遇到ValueError,如何解决?
- angular - Angular 6:Kendo-Schduler 中事件的不同背景颜色
- python - 如何仅获取具有特定条件的数据帧的第二个索引
- python - 查找常见项目数量python的快速方法
- css - 低 Z 指数中的高 Z 指数