作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我想通过名称 si 字符串格式访问属性。
如果我有这样的类(class):
class PrefsState {
String a;
PrefsState({
this.a,
})
我怎样才能做这样的事情:
PrefsState test= PrefsState(a: "it is a test");
String key = "a";
print(test[key]);
当然不行。在 Dart 中有一种方法可以做到这一点吗?
最佳答案
不幸的是,你不能在 flutter 中使用反射/镜子。您可以做的是使用 map ,这很乏味。
class PrefsState {
String a;
const PrefsState({ this.a, });
dynamic getProp(String key) => <String, dynamic>{
'a' : a,
}[key];
}
在构造函数中构建 map 可能更好,但如果您想要 const 构造函数,那么您将不得不满足于此。除非你有一百万个参数,否则可能不会有太大的不同。然后你像这样使用它:
PrefsState test= PrefsState(a: "it is a test");
String key = "a";
print(test.getProp(key));
我不认为有更简单的方法来做这件事,但很想被证明是错误的:-)
关于dart - 如何在 String 中通过此名称获取属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55445624/
我是一名优秀的程序员,十分优秀!