dart - 如何在 String 中通过此名称获取属性?

标签 dart flutter

我想通过名称 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/

相关文章:

flutter - 在 Dart 编程 flutter 中将两个列表转换为字典

dart - Dart:如何动态设置文档正文innerHTML

mysql - flutter 连接到服务器中的数据库

flutter - 仅当我键入一些文本时如何将标签文本移动到输入文本字段的顶部

firebase - 无法安装 Firebase 消息包

Flutter 升级失败

Dart、try.dart 使用 Mixins 时出错

android - 仅在使用 flip_card 依赖项 [FLUTTER] 按下闪存卡应用程序的 nextButton 时显示正面

dart - Dart:按列表长度在列表列表中排序

flutter - 如何在flutter中完成输入后立即保存文本表单字段的输入值