代码:
//./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 {}
它有效并且不会破坏任何东西,但我不想更改库。
答案 0 :(得分:4)
import bar.Bar
是模块导入,这意味着它会导入Bar.hx
模块中的所有类型。因此,如果您还希望阻止导入bar.Bar.Foo
,则可以显式导入 Bar
类型,如下所示:
import bar.Bar.Bar;
这在Haxe手册的Import部分进行了解释。