0

我想让一个包重定向到另一个包。例如,我有一个名为“packageA”的包和另一个名为“packageB”的包,导入 packageA 将导入 packageB。我希望能够在不复制包的情况下做到这一点。另外,如果导入的是 packageA 而不是 packageB,有什么方法可以运行方法吗?

4

2 回答 2

1

简短的回答:没有。

长答案:包是类的一部分,import语句是在编译时读取的,它们不会被解释。您想要的必须由扭曲的 Java 编译器完成。由于一些编译器是开源的,这可能是可以做到的,但不要期望找到这样的功能。

替代答案:如果您使用的是 Netbeans、Eclipse 等 IDE。有很多重构工具可以帮助您将包名称更改为另一个。

于 2012-12-08T00:27:36.177 回答
1

让我们看看import语句是如何工作的:

首先,import只导入类或接口。它从不导入包。特别是,像

import java.util.*

导入名为 . 的包中的所有类和接口java.util。这个包只是类和接口的容器,所以谈论“导入包”真的没有任何意义。包本身不是编译或运行的任何东西。

话虽如此,谈论“重定向”没有任何意义,因为您要重定向到什么?如果你想从“packageA”中导入一个类,直接导入即可。

同样,从 packageA 导入一个类可以让您访问该类的方法。由于该类位于 packageA 中,因此尝试从 packageB 导入它没有任何意义。即使 packageB 有一个同名的类,它们也是两个不同的类。事实上,这是 Java 中使用包的主要原因:避免两个不同程序员编写的类的名称冲突。

综上所述,您遇到了什么问题,您试图通过“重定向导入”来解决?

于 2012-12-08T00:31:58.363 回答