我的数据模型中定义了以下变量和getter / setter:
class Actor {
int _x;
int get x => _x;
set x(int value) => _x = value;
}
这个泛型类需要一个getter / setter函数指针
class PropertyItem {
var getterFunction;
var setterFunction;
PropertyItem(this.getterFunction, this.setterFunction);
}
如何将X的getter / setter函数的引用传递给PropertyItem类?
// Something like this
var item = new PropertyItem(x.getter, x.setter);
编辑:更新了更清晰的问题
答案 0 :(得分:6)
简而言之,你不是。 吸气剂和制定者是不可提取的 - 它们与只有一个领域无法区分(当然,如果你不做副作用)。
在您的示例中,您可以这样做:
class Actor {
int x;
}
并获得完全相同的效果。
你想要的是,对于一些演员"演员",自己制作这些功能:
var item = new PropertyItem(() => actor.x, (v) { actor.x = v; });
此proposal about generalized tear offs为approved,可能会很快实施,并允许将吸气剂和制定者关闭,如:
var item = new PropertyItem(actor#x, actor#x=);
答案 1 :(得分:4)
在Dart,以下内容:
class Foo {
int _offsetX;
int get offsetX => _offsetX;
set offsetX(int ox) => _offsetX = ox;
}
相当于:
class Foo {
int offsetX;
}