我想將包重定向到另一個包。例如,我有一個名爲「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. 將URL重定向到另一個
- 5. 「重定向」包
- 6. htaccess的從一個域重定向到另一個包括子域
- 7. 將一個特定頁面重定向到另一個域
- 8. 將一個項目包導入到另一個項目包android
- 9. 將活動從一個包切換到另一個包?
- 10. 將行重定向到另一行mysql
- 11. 將問題重定向到另一頁
- 12. 重定向:包括
- 13. 將CoffeeScript包含到另一箇中
- 14. 將包發送到另一個活動
- 15. 測試向量是否包含在另一個向量中,包括重複
- 16. 將一個模型重定向到另一個
- 17. 301使用web.config將一個域重定向到另一個域
- 18. 將網頁從一個域重定向到另一個域
- 19. 將一個目錄重定向到另一個目錄
- 20. 如何將一個活動重定向到另一個活動
- 21. 將一個域重定向到.htaccess的另一個域
- 22. 在Windows中將一個ip重定向到另一個ip?
- 23. 將數據從一個WebForm重定向到另一個
- 24. HAProxy將請求從一個端口重定向到另一個
- 25. 將一個exe的輸出重定向到另一個exe:C#
- 26. htacess - 將一個文件夾重定向到另一個內部
- 27. 如何將一個區域重定向到另一個區域
- 28. 重定向到另一頁
- 29. htacces重定向到另一個頁面,如果URL包含'經理'
- 30. 重定向URL網址中包含路徑到另一個頁面
不可行。抱歉。 –
Java沒有這個「功能」。 –
你爲什麼想要這樣做? –