2

通常は を使用しますType.getClassName(Type.getClass(this)が、 がないため、明らかに機能しませんthis。何か案は?

4

1 に答える 1

6

それが静的メソッドである場合、Haxe には静的メンバーの継承がないため、それがどのクラスに属しているかは既にわかっています。したがって、クラスをハードコーディングすることをお勧めします。

または、マクロを使用することもできます。

import haxe.macro.Context;
import haxe.macro.Expr;
class ClassNameHelper {
    macro static public function getClassName():ExprOf<String> {
        return { expr: EConst(CString(Context.getLocalClass().toString())), pos: Context.currentPos() }
    }
}

class Test {
    public static function main() {
        trace(ClassNameHelper.getClassName()); //Test
    }
}
于 2013-08-12T10:33:30.097 に答える