【问题标题】:How to dynamically use getters/setters in Dart如何在 Dart 中动态使用 getter/setter
【发布时间】:2013-10-27 20:29:21
【问题描述】:
class User{
String firstName;
String lastName;
String email;
}
我希望能够使用动态选择的符号或字符串来获取和设置用户中的字段之一。例如String value = u[new Symbol("firstName")];
我看到 InstanceMirror 有一个 getField 方法,但它似乎没有返回值。我需要的只是价值。
【问题讨论】:
标签:
reflection
dart
dart-mirrors
【解决方案1】:
如果您使用# 创建符号,您需要在编译时知道名称。
我是这样工作的:
library operator_lib;
import 'dart:mirrors';
void main(List<String> args) {
var x = new X();
var f = new Symbol('firstName');
var r = reflect(x);
print(r.getField(f).reflectee);
r.setField(f, "John");
print(r.getField(f).reflectee);
}
class X {
String firstName = 'Mike';
}