当我尝试使用Intellij(社区版)创建包implements
时,我收到了消息Not a valid package name
。这是因为使用了关键字吗?
答案 0 :(得分:21)
这是因为使用了关键字吗?
是的,包名称包含following form
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"
因此无法使用keywords。
答案 1 :(得分:3)
您不能在包声明中使用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} ;
此处标识符是任何Unicode字符,即“Java字母”或任何Unicode字符,即“Java字母或数字”。
“Java字母”包括大写和小写ASCII拉丁字母AZ(\ u0041- \ u005a)和az(\ u0061- \ u007a),并且由于历史原因,ASCII下划线(_,或\ u005f)和美元符号($,或\ u0024)。 $符号应仅用于机械生成的源代码,或者很少用于访问旧系统上预先存在的名称。
参考
答案 2 :(得分:2)
您不能将Java关键字用作包名称。请参阅JLS on Names和Identifiers
答案 3 :(得分:1)
这对我来说很好,在Intellij 13.1.2中,但是,即使您创建了一个包,也不能使用具有此名称的包,因为java package
语句不会接受包名称中任意位置的关键字。所以,我可以创建,但不能使用:
package com.implements.thing;