将包重定向到另一个包

时间:2012-12-08 00:20:17

标签: java package

我想将包重定向到另一个包。例如,我有一个名为“packageA”的包,另一个名为“packageB”,导入packageA将导入packageB。我希望能够在不复制包的情况下完成此操作。另外,如果导入packageA而不是packageB,有没有办法运行方法?

2 个答案:

答案 0 :(得分:1)

简短回答:不。

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

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

答案 1 :(得分:1)

让我们看一下import语句的工作原理:

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

这样的东西
import java.util.*

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

话虽如此,谈论“重定向”没有任何意义,因为你要重定向到什么?如果要从“packageA”导入类,只需直接导入它。

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

总而言之,您在尝试使用“重定向导入”时遇到了什么问题?