Haxe:访问root包类,如果它隐藏在另一个包的类后面

时间:2017-02-07 12:45:53

标签: haxe

代码:

//./Main.hx
package;
import bar.Bar;
class Main {
    static var foo:Foo;
    static function main() {
        $type(foo); // I want it to be "Foo", but it's "bar.Foo"
    }
}

//./Foo.hx
package;
class Foo {}

//./bar/Bar.hx
package bar;
class Foo {}
class Bar {}

Bar是一个我无法改变的图书馆。它在文件Foo中定义了一个名为Bar.hx的类。我不直接使用bar.Foo,而是使用bar.Bar。我想为我的课程Foo命名,这是一个好名字而我无法想到另一个,但我无法使用它,因为它隐藏在bar.Foo之后。我该怎么办?

其中一个解决方案是将bar.Foo声明更改为

private class Foo {}

它有效并且不会破坏任何东西,但我不想更改库。

1 个答案:

答案 0 :(得分:4)

import bar.Bar模块导入,这意味着它会导入Bar.hx模块中的所有类型。因此,如果您还希望阻止导入bar.Bar.Foo,则可以显式导入 Bar类型,如下所示:

import bar.Bar.Bar;

这在Haxe手册的Import部分进行了解释。