使用haxe.macro.TypeTools失败

时间:2016-07-13 20:13:39

标签: macros haxe

我正在尝试调试使用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是我想要效仿的。

1 个答案:

答案 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()获得的。