2016-07-22 90 views
0

最近我正在使用一個簡單的Java web應用程序項目(jetty 9)。Java:使用完整類路徑而不是「導入」有什麼好處?

這多少讓我感到困惑,因爲,而不是使用import,它採用了全類路徑中無處不在,如:

@java.lang.Override 
private void someAction(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp) throws javax.servlet.ServletException, java.io.IOException { 
    javax.servlet.http.HttpSession sess = req.getSession(false); 
    if(sess==null){ 
     ((javax.servlet.http.HttpServletResponse)resp).sendError(javax.servlet.http.HttpServletResponse.SC_FORBIDDEN); 
    } 
} 

即使是簡單的IntString

我知道import應該避免使用通配符,但是有沒有任何優勢/好處可以通過完全刪除import

+3

我能想到的唯一用例是如果你使用兩個具有相同簡單名稱的類(例如'foo.bar.MyClass'和'frob.nitz.MyClass'),你至少需要完全限定其中一個名字;否則,它只是使用完全限定名稱的更多代碼;進口僅僅是一個句法便利。 –

+0

如果您要生成使用FQ名稱的代碼,這也會更容易一些,因爲您不需要跟蹤需要導入的類:您可以只生成其中已包含FQ名稱的代碼,而不生成一個進口塊。 –

回答

0

我認爲這樣做的好處是編譯器很開心,因爲通過說明完整的類路徑,可以自動避免使用通配符時可能發生的歧義問題。 然而,你必須輸入更多,但我認爲碼頭自動生成此代碼,所以,如果您生成的代碼沒有什麼大不了的。

相關問題