我正在尝试调试使用haxe.macro.TypeTools::findField
的库。我为此创建了一个简单的代码:
package;
using haxe.macro.TypeTools;
class Main
{
public function new()
{
var test = findField(Child, "hello");
trace(test);
}
}
class Base
{
private function hello()
{
}
}
class Child extends Base
{
public function new() {}
}
但是我收到错误Unknown identifier : findField
。这是因为它只能在构建宏上下文中使用吗?
This是我想要效仿的。
答案 0 :(得分:2)
首先,函数findField()
不是来自haxe.macro.TypeTools
。
它是a helper function from edge.core.macro.Macros
。
要在没有类路径的情况下使用它,请使用通配符import edge.core.macro.Macros.*
其次,findField()
只应在构建宏上下文中使用,因为它需要Array<Field>
,这是haxe.macro.Context.getBuildFields()
获得的。