class User{
String firstName;
String lastName;
String email;
}
我希望能够使用动态选择的符号或字符串获取和设置用户中的字段之一。例如String value = u[new Symbol("firstName")];
我看到InstanceMirror有一个getField方法,但它似乎没有返回值。我所需要的只是值(value)。
最佳答案
如果使用 # 创建符号,则需要在编译时知道该名称。 我是这样工作的:
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';
}
关于reflection - 如何在 Dart 中动态使用 getter/setter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19623148/