我想将包重定向到另一个包。例如,我有一个名为“packageA”的包,另一个名为“packageB”,导入packageA将导入packageB。我希望能够在不复制包的情况下完成此操作。另外,如果导入packageA而不是packageB,有没有办法运行方法?
答案 0 :(得分:1)
简短回答:不。
答案很长:
包是类的一部分,import
语句在编译时读取,不解释它们。您想要的是必须由扭曲的Java编译器完成。由于某些编译器是开源的,因此可能可以完成但不希望找到这样的功能。
替代答案:如果您使用的是像Netbeans,Eclipse等IDE,那么有很多重构工具可以帮助您将包名更改为另一个。
答案 1 :(得分:1)
让我们看一下import
语句的工作原理:
首先,import
仅导入类或接口。 从不导入包。特别是像
import java.util.*
导入名为java.util
的包中的所有类和接口。这个包只是类和接口的容器,所以谈论“导入包”真的没有任何意义。包本身并不是编译或运行的任何东西。
话虽如此,谈论“重定向”没有任何意义,因为你要重定向到什么?如果要从“packageA”导入类,只需直接导入它。
同样,从packageA导入类可以访问该类的方法。由于该类存在于packageA中,因此尝试从packageB导入它没有任何意义。即使packageB有一个具有相同名称的类,它们也是两个不同的类。实际上,这是Java中包的主要原因:避免两个不同程序员编写的类的名称冲突。
总而言之,您在尝试使用“重定向导入”时遇到了什么问题?