考虑以下名为" MyClass.hx"。
的文件package mypackage;
class MyClass {}
class MySubClass extends MyClass {}
在其他文件中使用MySubClass
时,我必须指定全名mypackage.MyClass.MySubClass
或导入mypackage.MyClass
。但是,要使用Type.resolveClass
访问此类型,我必须指定mypackage.MySubClass
,尝试解析mypackage.MyClass.MySubClass
将返回null。
我不明白其中的区别,有人可以帮助我理解这一点吗?
答案 0 :(得分:2)
反射API(Type
所属的一部分)在运行时工作,但子类型存在于不同的命名空间中,然后在编译时(由于我不完全理解的原因)
来自Haxe手册的relevant部分:
子类型关系不会在运行时反映出来。也就是说,公共子类型成为其包含的包的成员,如果同一包中的两个模块试图定义相同的子类型,则可能导致冲突。变换:haxe.macro.Expr.ExprDef;