在IntelliJ中,我尝试为名称为default
的服务的默认实现创建一个包:
src
└─── main
└─── java
└─── service
├─── default
│ └─── // here I can't create java classes
│
├─── PostService.java
├─── SearchService.java
└─── UserService.java
IDE提示您不能在此程序包中创建Java类。
为什么不能在名为default
的程序包中创建Java类?
答案 0 :(得分:8)
default
是保留字。您不能给包,类,方法,变量等任何关键字作为名称。
保留字的完整列表为here
答案 1 :(得分:1)
因为default
是保留的Java关键字-您不能使用保留的关键字(例如public
,void
等)作为程序包名称。
答案 2 :(得分:1)
default
是Java中的reserved word-当没有switch
匹配时(例如,正如注释中提到的@Glains一样)用于case
语句的分支-从Java 8开始,它还用于提供接口的默认实现)。因此,它不能用作标识符,就像您无法命名包package
,class
public
等一样。
答案 3 :(得分:1)
您不能在程序中使用以下任何一种作为标识符。 关键字const和goto被保留,即使它们不是 当前使用。 true,false和null可能看起来像关键字,但是 它们实际上是文字。您不能将它们用作您的标识符 程序。
请参阅保留关键字列表。 documentation