You cannot directly pass the installer.
To avoid reflection, you can wrap the setter inside a function:
class A {
String _attr=;
set attr(String v) => _attr = v;
}
main() {
final a = new A();
// create a wrapper function to set attr
final setter = (v) => a.attr = v;
callSetter(setter);
print(a._attr);
}
callSetter(setterFunction(value)) {
setterFunction("value");
}
This proposal for generalized passages is approved and is likely to be implemented in the near future and will allow to fix getters and setters, for example:
var setter = a#attr;
setter(value)
source
share