我想将包重定向到另一个包。例如,我有一个名为“packageA”的包,另一个名为“packageB”,导入packageA将导入packageB。我希望能够在不复制软件包的情况下做到这一点。此外,有没有办法运行一个方法,如果packageA导入,而不是packageB?将包重定向到另一个包
回答
让我们看看import
声明是如何工作的:
首先,import
仅导入类或接口。它从来没有进口一个包。特别是,像
import java.util.*
进口的所有类和接口在包命名为java.util
。这个软件包只是一个类和接口的容器,所以谈论“导入一个软件包”确实没什么意义。一个包本身并不是编译或运行的任何东西。
这样说,谈论“重定向”没有任何意义,因为你要重定向到什么?如果你想从“packageA”中导入一个类,只需直接导入它。
同样,从packageA导入一个类可以让你访问这个类的方法。由于该类存在于packageA中,因此尝试从packageB导入它没有任何意义。即使packageB有一个同名的类,它们也是两个不同的类。实际上,这是Java中包的主要原因:避免两个不同程序员编写的类发生名称冲突。
说了这么多,你遇到了什么问题,你试图通过“重定向导入”来解决?
我想让使用我的jar的人能够使用旧的软件包名称和新的软件包名称。班级可以同时在两个包中吗? – Runemoro
@Runemoro不,两个包中的两个类是两个不同的类。解决该问题的一种方法是在packageA中创建类“A”,在packageB中创建另一个名为'A'的类,该类扩展'packageA.A'。 –
简短的回答:
号龙答: 包是类的一部分,并import
语句在编译的时候读,他们没有解释。你想要的东西必须由一个扭曲的Java编译器来完成。由于一些编译器是开源的,因此可以完成可能的,但不期望找到这样的特征。
替代答案:如果您使用NetBeans,Eclipse等IDE。有很多重构工具可以帮助您将包名更改为另一个。
- 1. 包含图像的文件夹重定向到另一个域
- 2. 重定向到包含内容的另一个网址
- 3. 将SSL重定向到另一个SSL
- 4. “重定向”包
- 5. 将一个特定页面重定向到另一个域
- 6. 将活动从一个包切换到另一个包?
- 7. 将一个项目包导入到另一个项目包android
- 8. 将行重定向到另一行mysql
- 9. 将问题重定向到另一页
- 10. 重定向:包括
- 11. 将包发送到另一个活动
- 12. 将CoffeeScript包含到另一个中
- 13. 在Windows中将一个ip重定向到另一个ip?
- 14. 将网页从一个域重定向到另一个域
- 15. 将一个exe的输出重定向到另一个exe:C#
- 16. 将一个域重定向到.htaccess的另一个域
- 17. 如何将一个区域重定向到另一个区域
- 18. 将数据从一个WebForm重定向到另一个
- 19. 将一个目录重定向到另一个目录
- 20. htacess - 将一个文件夹重定向到另一个内部
- 21. 将一个模型重定向到另一个
- 22. 如何将一个活动重定向到另一个活动
- 23. 重定向到另一页
- 24. 重定向URL网址中包含路径到另一个页面
- 25. htacces重定向到另一个页面,如果URL包含'经理'
- 26. 重定向到另一个网址,其中包含网页标题,如SO
- 27. DNS重定向到另一个网站
- 28. 重定向到另一个页面PHP
- 29. 重定向到另一个表格
- 30. jQuery重定向到另一个文件
不可行。抱歉。 –
Java没有这个“功能”。 –
你为什么想要这样做? –