flutter - 在 flutter 中将字符串读取为 dart 代码的方法?

标签 flutter dart eval

我想构建一个方法来动态保存特定对象的属性

给定属性名称和要保存的值,我调用“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/

相关文章:

javascript - 检查字符串是否包含计算

user-interface - 如何在 flutter 中有这样的圆形?

flutter - 使列表项相对于Flutter中的日期出现

Flutter - PageController 错误 : `Page value is only available after content dimensions are established.`

dart - 具有本地主机的VirtualHost

r - 给出函数中常见的缺失参数

javascript - 要求在虚拟机中无法按预期工作

flutter - 为什么 Flutter 指南在 VS Code 中被破坏

dart - 扩展 List<T> 类

svg - 在聚合物元件内部使用SVG