2016-01-19 30 views
3

考慮下面的文件名爲「MyClass.hx」。爲什麼不要Type.resolveClass並導入同一個類名的工作?

package mypackage; 

class MyClass {} 

class MySubClass extends MyClass {} 

當在另一個文件中使用MySubClass,我必須指定的mypackage.MyClass.MySubClass的全名或導入mypackage.MyClass。但是,爲了使用Type.resolveClass訪問此類型,我必須指定mypackage.MySubClass,並試圖解析mypackage.MyClass.MySubClass返回null。

我不明白區別,有人可以幫助我理解這一點嗎?

回答

2

反射API(其中Type是其中的一部分)在運行時工作,但子類型在編譯時存在於不同的命名空間中(出於我不完全理解的原因)。

從HAXE手冊的relevant部分:

的子類型關係並不在運行時被反射。也就是說,公共子類型成爲它們包含的包的成員,如果同一包中的兩個模塊試圖定義相同的子類型,這可能會導致衝突。

相關問題