就像Dynamic class method invocation in PHP分的问题,我想用DART做这件事.

var = "name";
page.${var} = value;
page.save();

这有可能吗?

推荐答案

有几件事你可以用Mirrors完成.

下面是一个如何设置类的值以及如何动态调用方法的示例:

import 'dart:mirrors';

class Page {
  var name;

  method() {
    print('called!');
  }
}

void main() {
  var page = new Page();

  var im = reflect(page);

  // Set values.
  im.setField("name", "some value").then((temp) => print(page.name));

  // Call methods.
  im.invoke("method", []);
}

如果您想知道,imInstanceMirror,这基本上反映了page实例.

还有一个问题:Is there a way to dynamically call a method or set an instance variable in a class in Dart?

Dart相关问答推荐

为什么 Dart 的编译器认为代码可能为空,而代码保证它不能为空?

在Dart中进行系统调用?

Flutter Web:无法用鼠标向下滚动(drag)(Flutter 2.5+)

在 Dart 的 Cloud Firestore 中添加文档后如何获取文档 ID

跳过 JavaScript 直接进入 Dart

找不到名为split-per-abi的选项

Flutter中图像纵横比的变化

如何判断一个字符串是否可以是 json.decode

如何在Flatter dart中使用相同的元素初始化列表?

如何判断两张 map 的省道是否相等

使用 Dart 计算字符串中字母的数量

如何从 ExpansionTile 的标题中删除默认填充

Visual Studio 的 Dart 插件

为什么 Angular 在组件名称中不需要破折号

有可用的 Dart VM 吗?

Dart 会在多核环境中并行执行隔离吗?

从 Dart 调用 javascript

在我的 angular-cli 元素中从 node-sass 切换到 dart sass

是否有任何官方计划在 Google App Engine 上支持 Dart?

在 Dart 中创建具有可变数量的参数或参数的函数