【发布时间】:2015-03-03 20:54:46
【问题描述】:
我正在使用 haxe 宏将 getter 和 setter 添加到变量中,现在我试图从新生成的 setter 中调用静态函数:
public static function build():Array<Field> {
//.........
// create setter
var setterBody = macro {
$variableRef = v;
// mypackage.MyClass.myFunc(this) <-------- DOES NOT WORK!!
return $variableRef;
};
newFields.push({
pos: Context.currentPos(),
name: "set_" + field.name,
meta: [],
kind: FieldType.FFun({
ret: readType,
params: [],
expr: setterBody,
args: [{
value: null,
type: readType,
opt: false,
name: "v"
}]
}),
doc: "",
access: []
});
在上面的代码中我找不到调用MyClass.myFun(this)的方法,我不知道如何为setter生成该代码,this指的是调用setter的对象的实例。
非常感谢。
【问题讨论】: