当我尝试使用 IntelliJ(社区版)创建名为
implements
的包时,我收到一条消息“不是有效的包名称”。这是因为使用了关键字吗?
这是因为使用了关键字吗?
是的,包名称具有以下形式
PackageDeclaration:
{PackageModifier} package Identifier {. Identifier} ;
Identifier
是
Identifier:
IdentifierChars but not a Keyword or BooleanLiteral or NullLiteral
IdentifierChars:
JavaLetter {JavaLetterOrDigit}
JavaLetter:
any Unicode character that is a "Java letter"
JavaLetterOrDigit:
any Unicode character that is a "Java letter-or-digit"
所以关键字不能使用。
您不能在包声明中使用 java 关键字。
abstract continue for new switch
assert default if package synchronized
boolean do goto private this
break double implements protected throw
byte else import public throws
case enum instanceof return transient
catch extends int short try
char final interface static void
class finally long strictfp volatile
const float native super while
这些按键不能使用。
包声明的语法是
PackageDeclaration:
{PackageModifier} package Identifier {. Identifier} ;
此处标识符是任何“Java 字母”的 Unicode 字符或任何“Java 字母或数字”的 Unicode 字符。
“Java 字母”包括大写和小写 ASCII 拉丁字母 A-Z (\u0041-\u005a) 和 a-z (\u0061-\u007a),并且由于历史原因,还包括 ASCII 下划线(_ 或 \u005f)和美元符号($ 或 \u0024)。 $ 符号应该仅在机械生成的源代码中使用,或者很少用于访问遗留系统上预先存在的名称。
参考
这对我来说效果很好,在 Intellij 13.1.2 中,但是,即使您创建了一个包,也不能使用具有此名称的包,因为 java
package
语句不会接受包名称中任何位置的关键字。所以,我可以创建,但不能使用:
package com.implements.thing;