在Dart中,setter方法的生成名称是什么?

时间:2012-09-21 23:40:47

标签: dart setter dart-mirrors

如果我有一个定义了setter的类,我如何从该类的实例引用生成的方法作为函数。规范类型表明它将是变量+'=“的id(似乎是愚蠢的),但这不解析。

例如:

class Bar {

  set foo(int value) {
  //whatever
  }
}

typedef F(int value);

void main() {
  F f = new Bar().foo=; //Fails, but what should this be??
  f(5);
}

1 个答案:

答案 0 :(得分:2)

setter名为foo=,但这不是你可以按照你想要的方式引用的东西。即使查看dart:镜像MethodMirror(对象方法的镜像,包括setter)也无法调用它。您可以轻松地将其重写为:

class Bar {

  set foo(int value) {
  //whatever
  }
}

typedef F(int value);

void main() {
  Bar b = new Bar();
  F f = (int value) => b.foo = value;
  f(5);
}