Java中的不合格名稱

我們程式設計課程中的老師正在談論“不合格的名字”,但我想知道他們到底是什麼.

我懷疑方法名稱之類的東西是不合格的,但我不確定.

有沒有人可以向我解釋這個?我需要知道這一點,因為我需要解釋Java看起來像一個不合格的名稱.

限定名稱是具有完整路徑的名稱,例如:

java.util.ArrayList list;

一個不合格的名字只是最後一部分:

import java.util.*;

ArrayList list;

該術語也適用於欄位和方法.

那麼,如果你可以匯入類,為什麼你需要使用一個合格的名字?

當你使用兩個類時,你需要它,雖然它們來自不同的包,但它們共享相同的名稱.一個典型的例子是來自JDK的可笑命名的類:

java.sql.Date

順便延伸

java.util.Date

需要引用這兩個類的例項是相當常見的,因此您需要看起來像這樣的程式碼:

public void process(java.util.Date fromDate) {
    RowSet rows = <run query with fromDate as parameter>
    while (rows.nsxt()) {
        java.sql.Date date = rows.getDate(1);
        // code that needs date
    }
}

如果你使用兩個同名類,那麼至少有一個不能避免限定 – 你可以匯入一個,但匯入兩個會產生歧義.

翻譯自:https://stackoverflow.com/questions/27966609/unqualified-name-in-java