为什么不能将 java 包命名为 "default"?

Why cannot name a java package "default"?

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

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

IDE提示无法在此包中创建java类

为什么我不能在名为 default 的包中创建 java 类?

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

保留字的完整列表是here

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

default 是 Java 中的 reserved word - 当没有 case 匹配时,它用于 switch 语句的分支(并且,作为@Glains 在评论中提到 - 自 Java 8 以来,它还用于提供接口的默认实现)。因此,它不能用作标识符,就像您不能将包命名为 packageclass public 等一样

You cannot use any of the following as identifiers in your programs. The keywords const and goto are reserved, even though they are not currently used. true, false, and null might seem like keywords, but they are actually literals; you cannot use them as identifiers in your programs.

查看保留关键字列表。 documentation