gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 06:45:22 25 4
gpt4 key购买 nike

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com