2013-08-31 73 views
2

我只是好奇,這是編碼的首選方式,因爲我已經看過這兩種方式編寫的代碼。哪一種編寫代碼更好?具體的構造函數或導入

import java.util.ArrayList; 
import java.util.List; 
/** 
*Rest of code 
*/ 
List<Blah> blahs = new ArrayList(); 

import java.util.List; 
/** 
*Rest of code 
*/ 
List<Blah> blahs = new java.util.ArrayList(); 

所以,這是首選,爲什麼?兩種方法的缺點是什麼?只是好奇。

+0

唯一的區別是可讀性(它對編​​譯器沒有顯着影響,並且會導致相同的字節碼)。所以無論你覺得哪個更具可讀性。 IMO:選項1。 – assylias

回答

5

那麼,這是首選,爲什麼?

首先應該是首選。代碼清晰度是最重要的關注點。

&這兩種方法的缺點是什麼?

那麼,編譯器會將第一種方法轉換爲後一種方法,即用完全限定的名稱替換所有的類和類型。這兩個代碼都會導致相同的字節碼。因此,你真的不應該爲這些東西煩惱。 (您可以通過運行javap命令來檢查字節碼)

您使用完全限定名稱的唯一原因是解析您導入的不同包中的名稱衝突。例如,如果您要導入java.util.*java.sql.*,那麼您需要使用完全限定名稱Date類。

相關崗位:

3
  • 當您有幾個具有相同簡單名稱的類時,將會優先使用完全限定的名稱。

  • 在所有其他情況下,優先停留易於閱讀方法將導入全quallified名稱和使用簡單的類名。

1

大概是前者,因爲後者看起來有點模糊。如果您使用在不同包中找到的多個類,則只應使用後者(在類之前指定包名稱)。

相關問題