2012-06-20 125 views
2

注:我意識到這可能是一個開放式問題,所以如果您覺得這不屬於或沒有優點,請繼續並標記爲刪除。什麼時候適合導入包?

我一直沒有和Java一起工作(或者一般的編程)很長時間,大部分時間都花在學習實際應用(特別是Android)上。因此,我意識到,當涉及到概念問題時,我非常落後。

我的問題是:什麼時候使用import 'package name';聲明而不是簡單地使用完全限定的類名是否合適?

我見過編碼器決定使用android.widget.Button的示例代碼,而之後的每個實例都使用import android.widget.ButtonButton。我目前正在編寫代碼,我知道我將僅使用某個類,並且我覺得使用import語句是件浪費。

任何指導我什麼時候應該使用import聲明與使用完全限定名稱,將不勝感激。我不是在尋找一個明確的答案,只是一些有用的提示。

+0

此外,這是從[this]不同的問題(http://stackoverflow.com/questions/10592951/in-java-when-should-i-import-whole-packages-with-instead-of - 單個對象)。我一般要求使用'import'語句與使用完全限定名稱(例如'android.view.Button btn = ...')。 –

+1

可能的重複:http://stackoverflow.com/questions/5804843/java-use-import-or-explicit-package-class-name –

+1

如果您使用Eclipse做:「CTRL」+「SHIFT」+「O」將解決你所有的問題;) – Jug6ernaut

回答

5

解決方法很簡單:如果你有超過1 Button類(顯然,各自在自己的包),您相同類中使用,則使用完全合格的名稱。否則,導入您需要的唯一的Button類。

通常情況下,包導入是首選,因爲它帶來更乾淨的代碼,它使編譯器知道什麼類(包)要先編譯。

+0

它對JVM也有影響嗎?我認爲這只是句法糖。你能發佈一個鏈接嗎? – Puce

+0

哎呀,抱歉,謝謝你看到我的問題。編輯我的帖子。 –

-2

總是使用導入,沒有理由不去,你會得到更乾淨的代碼。

+0

那不是真正的精英君子給出了一個有效的例子 – Mike

+0

精英君子不回答被問到的問題。問題不在於他是否應該使用通配符,問題是如果他應該使用import,而不是在代碼中使用完全限定名稱。 – mbwasi

+0

@mbwasi,問題是「我應該使用導入語句與使用完全限定名稱的時間有關的任何指導方針都將非常值得讚賞,並且我確實會回答這個問題(OP要求**,當他/他應該使用一個'import'語句與使用完全限定名稱相比)。 –

0

使用import是方便的。在代碼中僅使用類名稱對於可讀性更好(並且輸入的字符也更少!;-))

此外,工具(如Eclipse)將爲您組織導入並提出基於只有類名。

至於在代碼中使用完全合格的類名 - 這是非常有用的(它是一個必須,其實)如果你有一個衝突的類名(例如,類my.components.Buttonandroid.widget.Button),你需要明確指出你正在使用哪個類的代碼。但是,即使在這種情況下,您也可以導入其中一個類(更經常使用的類)並明確鍵入另一個類。

1

好吧有三個明顯的原因。

  1. 它使您的代碼簡潔乾淨。
  2. 如果您在包中使用許多類,那麼導入整個包確實有意義。
  3. 你的導入語句是你的類的元數據,它聲明瞭外部世界的類依賴。