我想通过名称 si 字符串格式访问属性。
如果我有这样的课程:
class PrefsState {
String a;
PrefsState({
this.a,
})
Run Code Online (Sandbox Code Playgroud)
我怎么能做这样的事情:
PrefsState test= PrefsState(a: "it is a test");
String key = "a";
print(test[key]);
Run Code Online (Sandbox Code Playgroud)
当然是不行的。在 Dart 中有一种方法可以做到这一点吗?
不幸的是,您不能在颤动中使用反射/镜子。您可以做的是使用地图,这是乏味的。
class PrefsState {
String a;
const PrefsState({ this.a, });
dynamic getProp(String key) => <String, dynamic>{
'a' : a,
}[key];
}
Run Code Online (Sandbox Code Playgroud)
在构造函数中构建地图可能会更好,但是如果您想要 const 构造函数,那么您必须满足于此。除非你有一百万个参数,否则可能不会有太大的不同。然后你像这样使用它:
PrefsState test= PrefsState(a: "it is a test");
String key = "a";
print(test.getProp(key));
Run Code Online (Sandbox Code Playgroud)
我不认为有一种不那么麻烦的方法,但很想被证明是错误的:-)
| 归档时间: |
|
| 查看次数: |
3648 次 |
| 最近记录: |