7
私はクラスを持って取得します。haXeの中のフィールドの種類(リフレクションAPI)
class MyClass {
private var num : Int;
}
を私は、フィールドを問わずnull
することができ、現在の値の種類Int
を持っていることを知っていただきたいと思います例えば。
私はクラスを持って取得します。haXeの中のフィールドの種類(リフレクションAPI)
class MyClass {
private var num : Int;
}
を私は、フィールドを問わずnull
することができ、現在の値の種類Int
を持っていることを知っていただきたいと思います例えば。
実行時にコンパイル時の情報がないと実行できません。 RTTIまたはマクロを使用してこれを行うことができます。 RTTIを複数回解析する必要がある場合は、RTTIを実装する方が簡単ですが、少し遅くなる可能性もあります。
class MyClass implements haxe.rtti.Infos {
private var num : Int;
}
とフィールドタイプを取得する:
あなたのクラスは、その後になる答えを
var rtti : String = untyped MyClass.__rtti;
var x = Xml.parse(rtti).firstElement();
var infos = new haxe.rtti.XmlParser().processElement(x);
switch(infos)
{
case TClassdecl(cl):
for (f in cl.fields)
{
if (f.name == "num")
{
trace(f.type);
}
}
default:
}
感謝を。この情報をクラスに手動で追加する方法はありますか(いくつかの魔法の隠されたフィールドに)? XMLは巨大な過度の攻撃に見えます。 – vbence
はい、マクロを使用する必要があります。一番簡単な方法は、ビルドマクロ(http://haxe.org/manual/macros/build) – Waneck
を使用することですが、xml解析を一度実行して静的フィールドに結果を格納することもできます – Waneck