Haxe:访问根包 class 如果它隐藏在另一个包的 class 后面
Haxe: access root package class if it's hidden behind class from another package
代码:
//./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
是我无法更改的库。它在文件 Bar.hx
中定义了一个名为 Foo
的 class。我没有直接使用bar.Foo
,而是使用bar.Bar
。我想把我的名字命名为 class Foo
,这是一个很好的名字,我想不出另一个,但我不能使用它,因为它隐藏在 bar.Foo
后面。我能做什么?
其中一个解决方案是将 bar.Foo
声明更改为
private class Foo {}
它可以工作并且不会破坏任何东西,但我不想更改库。
import bar.Bar
是一个 模块导入 ,这意味着它导入 Bar.hx
模块中的所有类型。因此,如果您还想阻止 bar.Bar.Foo
被导入,您可以显式导入 only Bar
类型,如下所示:
import bar.Bar.Bar;
这在 Haxe 手册的 Import 部分中有解释。
代码:
//./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
是我无法更改的库。它在文件 Bar.hx
中定义了一个名为 Foo
的 class。我没有直接使用bar.Foo
,而是使用bar.Bar
。我想把我的名字命名为 class Foo
,这是一个很好的名字,我想不出另一个,但我不能使用它,因为它隐藏在 bar.Foo
后面。我能做什么?
其中一个解决方案是将 bar.Foo
声明更改为
private class Foo {}
它可以工作并且不会破坏任何东西,但我不想更改库。
import bar.Bar
是一个 模块导入 ,这意味着它导入 Bar.hx
模块中的所有类型。因此,如果您还想阻止 bar.Bar.Foo
被导入,您可以显式导入 only Bar
类型,如下所示:
import bar.Bar.Bar;
这在 Haxe 手册的 Import 部分中有解释。