Eclipse / Java-導(dǎo)入java。(namespace)。*是否有害?
導(dǎo)入通配符包可能導(dǎo)致的唯一危害是,如果多個(gè)包中有多個(gè)同名類(lèi),則增加名稱(chēng)空間沖突的機(jī)會(huì)。
例如,我要編程使用ArrayListAWT應(yīng)用程序中的Java CollectionsFramework類(lèi),該應(yīng)用程序使用ListGUI組件顯示信息。為了舉例,我們假設(shè)有以下內(nèi)容:
// ’ArrayList’ from java.utilArrayList<String> strings = new ArrayList<String>();// ...// ’List’ from java.awtList listComponent = new List()
現(xiàn)在,為了使用以上內(nèi)容,必須至少將這兩個(gè)類(lèi)導(dǎo)入:
import java.awt.List;import java.util.ArrayList;
現(xiàn)在,如果要在包中使用通配符,則import需要以下內(nèi)容。
import java.awt.*;import java.util.*;
但是,現(xiàn)在我們將有問(wèn)題!
有一個(gè)java.awt.List類(lèi)和一個(gè)java.util.List,因此引用List該類(lèi)將是不明確的。List如果我們想消除歧義,則必須使用完全限定的類(lèi)名來(lái)引用:
import java.awt.*;import java.util.*;ArrayList<String> strings = new ArrayList<String>();// ...// ’List’ from java.awt -- need to use a fully-qualified class name.java.awt.List listComponent = new java.awt.List()
因此,在某些情況下,使用通配符軟件包import可能會(huì)導(dǎo)致問(wèn)題。
解決方法為何在導(dǎo)入類(lèi)型時(shí)Eclipse采用細(xì)粒度的方法?在C#中,我已經(jīng)習(xí)慣了“使用System.Windows.Controls”之類(lèi)的事情,但是使用Eclipse則更喜歡單獨(dú)導(dǎo)入我引用的每個(gè)小部件(使用Ctrl+ Shift + O快捷鍵)。如果我知道其中需要多種類(lèi)型,那么導(dǎo)入整個(gè)名稱(chēng)空間是否有任何危害?
相關(guān)文章:
1. javascript - 百度echarts series數(shù)據(jù)更新問(wèn)題2. MySQL客戶(hù)端吃掉了SQL注解?3. java - 我設(shè)置了cookie的max age,但是cookie依然在關(guān)閉游覽器后消失了4. css3 - [CSS] 動(dòng)畫(huà)效果 3D翻轉(zhuǎn)bug5. javascript - JS設(shè)置Video視頻對(duì)象的currentTime時(shí)出現(xiàn)了問(wèn)題,IE,Edge,火狐,都可以設(shè)置,反而chrom卻...6. python小白的基礎(chǔ)問(wèn)題 關(guān)于while循環(huán)的嵌套7. java固定鍵值轉(zhuǎn)換,使用枚舉實(shí)現(xiàn)字典?8. php自學(xué)從哪里開(kāi)始?9. phpstady在win10上運(yùn)行10. 求大神幫我看看是哪里寫(xiě)錯(cuò)了 感謝細(xì)心解答
