Java 使包重定向到另一个包
我想使一个包重定向到另一个包。例如,我有一个名为“packageA”的包和另一个名为“packageB”的包,导入packageA将导入packageB。我希望能够做到这一点,而不复制包。另外,如果导入了packageA而不是packageB,是否有办法运行方法?简短回答:否 长答覆: 包是类的一部分,Java 使包重定向到另一个包,java,package,Java,Package,我想使一个包重定向到另一个包。例如,我有一个名为“packageA”的包和另一个名为“packageB”的包,导入packageA将导入packageB。我希望能够做到这一点,而不复制包。另外,如果导入了packageA而不是packageB,是否有办法运行方法?简短回答:否 长答覆: 包是类的一部分,import语句是在编译时读取的,它们不会被解释。您需要的是一个扭曲的Java编译器。由于一些编译器是开源的,这可能是可以做到的,但不要指望找到这样的特性 备选答案:如果您使用的是Netbeans
import
语句是在编译时读取的,它们不会被解释。您需要的是一个扭曲的Java编译器。由于一些编译器是开源的,这可能是可以做到的,但不要指望找到这样的特性
备选答案:如果您使用的是Netbeans、Eclipse等IDE,那么有很多重构工具可以帮助您将包名更改为另一个包名。让我们看看import语句的工作原理: 首先,
import
只导入类或接口。它从不导入包。特别是
import java.util.*
导入名为java.util
的包中的所有类和接口。这个包只是类和接口的容器,所以谈论“导入包”真的没有任何意义。包本身不是编译或运行的东西
话虽如此,谈论“重定向”没有任何意义,因为你要重定向到什么?如果要从“packageA”导入类,只需直接导入即可
类似地,从packageA导入一个类可以让您访问它的类和方法。由于该类位于packageA中,因此尝试从packageB导入它没有任何意义。即使packageB有一个同名的类,它们也是两个不同的类。事实上,这是Java包的主要原因:避免两个不同程序员编写的类的名称冲突
综上所述,您在使用“重定向导入”时遇到了什么问题?Java没有这个“功能”。您为什么要这样做?您试图解决的真正问题是什么?我想让使用我的jar的人能够使用旧的包名和新的包名。这个类可以同时在两个包中吗?@Runemoro不,两个包中的两个类是两个不同的类。解决此问题的一种方法是在packageA中创建类
A
,在packageB中创建另一个名为A
的类,该类扩展了packageA.A
。