簡體   English   中英

為什么要導入像 NullPointerException 這樣的 java.lang 類?

[英]Why import java.lang classes like NullPointerException?

Java 語言規范說:

每個編譯單元都會隱式導入在預定義的 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM