Информация о типе во время исполнения (RTTI)

Информация о типе времени исполнения (RTTI) полезна, если вам необходимо четко знать полное определение класса во время выполнения программы.

Чтобы сделать эту доп. информацию доступной, нужно просто добавить мета-данные @:rtti к вашему определению класса. Эта информация будет храниться в скрытом статическом поле __rtti и может быть преобразована в Xml, чтобы потом быть обработанной через API haxe.rtti:

@:rtti
class Test {
    var v : String;
    static function f() {
        return 33;
    }
    static function main() {
        var rtti : String = untyped Test.__rtti;
        var x = Xml.parse(rtti).firstElement();
        var infos = new haxe.rtti.XmlParser().processElement(x);
        trace(infos);
    }
}

См. XmlParser для дальнейшей информации.

NOTE: В Haxe 2, вместо использования мета-данных @:rtti нужно было объявить в классе реализацию специального интерфейса haxe.rtti.Infos.

version #19576, modified 2013-07-10 23:50:05 by nadako