如何在haxe中从该类的静态方法获取类的名称?

时间:2013-08-12 05:09:27

标签: haxe

通常我会使用Type.getClassName(Type.getClass(this),但显然这不起作用,因为没有this。有什么想法吗?

1 个答案:

答案 0 :(得分: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
    }
}