Вы не можете сделать это во время выполнения без информации времени компиляции.Вы можете сделать это либо с 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 _:
}
}
}