[英]Why import java.lang classes like NullPointerException?
每個編譯單元都會隱式導入在預定義的 package java.lang 中聲明的每個公共類型名稱,就像聲明 import java.lang.* 一樣; 在任何 package 語句之后立即出現在每個編譯單元的開頭。 因此,所有這些類型的名稱在每個編譯單元中都可以作為簡單名稱使用。
但是,有時我會看到從java.lang
導入類的代碼,例如import java.lang.NullPointerException;
. 這樣做有什么好的理由嗎?
這樣做有什么好的理由嗎?
幾乎可以肯定沒有。 唯一可能的解釋是他們在當前的 package 中定義了自己的NullPointerException
,並且他們不想在當前的 class 中使用它。 (而且你不應該那樣做......)
最可能的解釋是有人不理解Java。
它也可以通過 IDE 來解釋,暗示進口1 。 但這應該通過代碼審查來獲取,因此如果您在已發布的代碼庫中看到它,這是一個潛在的代碼質量危險信號。
如果代碼是由源代碼生成器生成而不是由人編寫的,也可以解釋。 這是可以原諒的,只要它不會導致錯誤的代碼。
1 ...雖然我從未見過 IDE 為java.lang
類執行此操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.