为什么不使用Type.resolveClass并导入相同类名的工作?

时间:2016-01-19 01:31:56

标签: haxe

考虑以下名为" MyClass.hx"。

的文件
package mypackage;

class MyClass {}

class MySubClass extends MyClass {}

在其他文件中使用MySubClass时,我必须指定全名mypackage.MyClass.MySubClass或导入mypackage.MyClass。但是,要使用Type.resolveClass访问此类型,我必须指定mypackage.MySubClass,尝试解析mypackage.MyClass.MySubClass将返回null。

我不明白其中的区别,有人可以帮助我理解这一点吗?

1 个答案:

答案 0 :(得分:2)

反射API(Type所属的一部分)在运行时工作,但子类型存在于不同的命名空间中,然后在编译时(由于我不完全理解的原因)

来自Haxe手册的relevant部分:

  

子类型关系不会在运行时反映出来。也就是说,公共子类型成为其包含的包的成员,如果同一包中的两个模块试图定义相同的子类型,则可能导致冲突。变换:haxe.macro.Expr.ExprDef;