我有一个班级:
class MyClass {
private var num : Int;
}
我想知道该字段的类型为Int
,与当前值无关,例如null
。
答案 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 _:
}
}
}