获取Haxe中的字段类型(反射api)

时间:2011-12-06 10:54:43

标签: reflection haxe

我有一个班级:

class MyClass {
    private var num : Int;
}

我想知道该字段的类型为Int ,与当前值无关,例如null

1 个答案:

答案 0 :(得分:4)

如果没有编译时信息,则无法在运行时执行此操作。您可以使用RTTI或宏来执行此操作。 RTTI会更容易实现,虽然如果你需要多次解析RTTI,它可能会慢一点。

您的课程将成为:

@:rtti
class MyClass {
    private var num : Int;
}

并获取字段类型:

var rtti = haxe.rtti.Rtti.getRtti(MyClass);
for (field in rtti.fields) {
    if (field.name == "num") {
        switch (field.type) {
            case CAbstract(name, _):
                trace(name); // Int
            case _:
        }
    }
}