我想构建一个方法来动态保存特定对象的属性
给定属性名称和要保存的值,我调用“save()”函数来更新全局 targetObj
var targetObj = targetClass();
save(String attribute, String value){
targetObj.attribute = value;
print(targetObj.attribute);
}
但我收到以下错误:
Class 'targetClass' has no instance setter 'attribute='.
Receiver: Instance of 'targetClass'
Tried calling: attribute="Foo"
我唯一能想到的是“属性”由于是 String 类型而导致错误。
这让我思考是否有一种方法可以将字符串读取为代码,例如 php 的 eval。
最佳答案
正如 @Randal 提到的,您无法在运行时创建 class..method
。不过,您可以尝试这样的事情。
某类
class Foo {
dynamic bar1;
dynamic bar2;
// ...
}
您的保存方法
save(Foo fooObject, String attribute, dynamic value) {
if ("bar1" == attribute) fooObject.bar1 = value;
else if ("bar2" == attribute) fooObject.bar2 == value;
// ...
}
关于flutter - 在 flutter 中将字符串读取为 dart 代码的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65542297/