我將apitest移植到jogl,其中一個目錄名爲Null,因此我只是試圖使用null
作爲軟件包名稱,Netbeans抱怨它無效。Java,爲什麼我們不能使用null作爲包名?
我知道我是雞蛋裏挑骨頭,但我只是好奇。我沒有發現任何東西在這裏或對谷歌..
是否有與反射,名稱檢索,類似的事情還是要做別的東西? 或者是這樣的設計,與運營商超載相同?
編輯:我知道這是一個保留字,但在代碼..
我將apitest移植到jogl,其中一個目錄名爲Null,因此我只是試圖使用null
作爲軟件包名稱,Netbeans抱怨它無效。Java,爲什麼我們不能使用null作爲包名?
我知道我是雞蛋裏挑骨頭,但我只是好奇。我沒有發現任何東西在這裏或對谷歌..
是否有與反射,名稱檢索,類似的事情還是要做別的東西? 或者是這樣的設計,與運營商超載相同?
編輯:我知道這是一個保留字,但在代碼..
標識符不能被命名null
爲language specification提到:
標識符不能有相同的拼寫(Unicode字符序列)作爲關鍵字(§3.9),布爾文字(§3.10.3),或空文字(§3.10.7),或發生編譯時錯誤。
,null
是在Java語言中的文字(null literal),你不能用作標識...
根據Oracle:
軟件包名稱全部採用小寫字母,以避免與類或接口的名稱衝突。
...
在某些情況下,互聯網域名可能不是一個有效的軟件包 名。如果域名包含連字符或其他 特殊字符(如果包名稱以數字或其他 字符作爲Java名稱的開頭非法使用,或 如果包名稱包含保留Java關鍵字,如「int」。 在這個事件中,建議的約定是添加一個下劃線。例如: 例如:
我相信這只是通過設計而得到的。
根據Java語言規範,'null'是一個關鍵字,您不能使用任何關鍵字來標識除主要用途之外的任何其他內容。
儘管您可以對大寫'N'使用Null,對於與預定義關鍵字不匹配的所有其他關鍵字,您都可以使用Null。
Java不鼓勵使用這種不好的命名實踐。
null是賦予標識符的值。包是一個標識符。它不可能是一個價值。
考慮一下'null.TheClass'這個語句,java應該如何知道你是一個包作爲null? – RAnders00
對,這個有意義 – elect