为什么不能将Java包命名为“默认”?

时间:2018-07-31 09:29:32

标签: java syntax-error naming-conventions packages directory-structure

在IntelliJ中,我尝试为名称为default的服务的默认实现创建一个包:

 src
└───  main
    └───  java
        └───  service
            ├───  default
            │   └─── // here I can't create java classes
            │
            ├─── PostService.java
            ├─── SearchService.java
            └─── UserService.java

IDE提示您不能在此程序包中创建Java类。

为什么不能在名为default的程序包中创建Java类?

4 个答案:

答案 0 :(得分:8)

default是保留字。您不能给包,类,方法,变量等任何关键字作为名称。

保留字的完整列表为here

答案 1 :(得分:1)

因为default是保留的Java关键字-您不能使用保留的关键字(例如publicvoid等)作为程序包名称。

答案 2 :(得分:1)

default是Java中的reserved word-当没有switch匹配时(例如,正如注释中提到的@Glains一样)用于case语句的分支-从Java 8开始,它还用于提供接口的默认实现)。因此,它不能用作标识符,就像您无法命名包packageclass public等一样。

答案 3 :(得分:1)

  

您不能在程序中使用以下任何一种作为标识符。   关键字const和goto被保留,即使它们不是   当前使用。 true,false和null可能看起来像关键字,但是   它们实际上是文字。您不能将它们用作您的标识符   程序。

请参阅保留关键字列表。 documentation