Java,为什么我们不能使用null作为包名?

时间:2016-03-04 18:44:58

标签: java null package

我正在将apitest移植到jogl,其中一个目录名为Null,因此我只是尝试使用null作为包名称,Netbeans抱怨它无效。

我知道我正在分裂头发,但我只是好奇..我在这里或谷歌上找不到任何东西..

是否与反射,名称检索,类似或其他内容有关? 或者它是否像设计一样,与运算符重载相同?

编辑:我知道这是一个保留字,但在代码中..

4 个答案:

答案 0 :(得分:3)

无法将language specification提及的标识符命名为null

  

标识符不能与关键字(§3.9),布尔文字(§3.10.3),或空文字(§3.10.7)具有相同的拼写(Unicode字符序列),或者发生编译时错误。

答案 1 :(得分:3)

在这种情况下,null是java语言中的文字(null literal),不能用作标识符......

根据Oracle

命名惯例:

  

包名称全部小写,以避免与   类或接口的名称。

     

...

在您的情况下,以下参考非常重要:

  

在某些情况下,互联网域名可能不是有效的套餐   名称。如果域名包含连字符或其他,则会发生这种情况   特殊字符,如果包名以数字或其他开头   用作Java名称开头的非法字符或   如果包名称包含保留的Java关键字,例如“int”。   在这种情况下,建议的约定是添加下划线。对于   例如:

答案 2 :(得分:0)

我认为只有设计就是这样。

根据Java语言规范,' null'是一个关键字,您不能使用任何关键字来识别除其主要目的之外的任何其他内容。

虽然你可以使用Null和大写的N' N'对于与预定义关键字不匹配的所有其他关键字,类似。

Java不鼓励使用这种糟糕的命名做法。

答案 3 :(得分:0)

null是赋予标识符的值。包是一个标识符。它不可能是一个价值。