[英]Why import java.lang classes like NullPointerException?
[英]Java: How to Exclude Implicit Import of java.lang classes
例如,如果我想排除加載java.lang.String,我將如何去做?
編寫自己的編譯器,可以編譯這種幾乎是Java的新語言。
編譯單元中的代碼自動訪問其程序包中聲明的所有類型,並且還自動導入預定義程序包
java.lang
聲明的所有公共類型。
沒有辦法禁用該行為。 而且您不需要; 導入只會影響編譯,即使類型(不明智地)與java.lang
類型具有相同的名稱(如Object
,也可以在源代碼中使用其完全限定名稱來引用它。
您正在混淆兩個主題。
該標題為“如何排除java.lang類的隱式導入”,在正文中您詢問“排除加載java.lang.String”。
java.lang.*
的自動導入對運行時沒有任何影響 。 它僅允許您在編譯時使用簡單單詞String
而不是點構造java.lang.String
來引用字符串。
僅當您的代碼需要它時 ,才會加載 java.lang.String
類,無論您在源代碼中將其引用為String
還是java.lang.String
。
而且我非常確定每個Java程序都需要String類,例如,在其public static void main(String[] args)
加上許多庫類中。
因此,如果您擔心內存占用過多,以至於無法加載String類,請切換到其他語言,例如1970年代的K&RC。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.