Eclipse Java - 包名无效 - 包名中的保留字

Posted

技术标签:

【中文标题】Eclipse Java - 包名无效 - 包名中的保留字【英文标题】:Eclipse Java - invalid package name - Reserved words in package name 【发布时间】:2012-10-27 11:38:50 【问题描述】:

我在一个 android 项目的中间,并试图在其中创建一个新包。

com.mycompany.myprojectname.new

好吧,Eclipse 不允许我创建它并显示此错误:

包名无效。 'new' 不是有效的 Java 标识符

我从来不知道包名有保留字,我们不能使用。我的问题是;

    这是 Eclipse 的东西吗?还是Java的东西?我尝试了一个纯Java项目 (不是 Android),只是为了检查,但我也遇到了同样的错误。 还有哪些不允许的保留字? 是否有相关文档?

【问题讨论】:

4.你在 Google 上搜索过 Java 中的保留字吗? 我知道我不能在程序中使用保留字。但我说的是包名 我认为你的包名是你程序的一部分。不是吗? @RohitJain 我相信包名是项目级别的东西,而不是程序级别的东西。无论如何,Joachim Sauer 的回答已经足够权威了。 【参考方案1】:

是的,这是一般 Java 的事情。

list of reserved words can be found here。它们是:

abstract  continue    for         new         switch
assert    default     goto        package     synchronized
boolean   do          if          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

关于如果在 package naming tutorial 等地方找到保留字不能在包名称中使用这一事实的文档。

权威来源(一如既往)the Java Language Specification,具体来说:

§ 3.9 Keywords 和

§ 3.8 Identifiers

标识符不能与关键字 (§3.9)、布尔文字 (§3.10.3) 或空文字 (§3.10.7) 具有相同的拼写(Unicode 字符序列),否则会发生编译时错误。

【讨论】:

Android 包名中允许使用哪些字符的规则是什么?它只是英文字母,“。”以及允许的“_”字符? @androiddeveloper:(几乎)Java 中允许使用所有 Unicode 字符。除非 Android 有其他更具体的要求(我不知道有任何要求),否则那里应该也是如此。 我认为下划线不允许作为第一个字符,例如。我认为这与Java相同。你能告诉我其他的规则吗? 我没有看到下划线和/或其他字符。 所以他们说它必须以 Java 字母开头,但他们在混合中包含下划线和美元符号,我认为不允许将它们用作第一个字符,没有?【参考方案2】:

在此处查看文档:

http://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html

在某些情况下,互联网域名可能不是有效的包 姓名。如果域名包含连字符或其他 特殊字符,如果包名以数字或其他字符开头 非法用作 Java 名称开头的字符,或 如果包名包含保留的 Java 关键字,例如“int”。

【讨论】:

【参考方案3】:

new 是一个 java 关键字。用其他词代替它。

【讨论】:

【参考方案4】:

YMMV 但要小心命名包target;可能会弄乱您的代码存储库和/或 IDE

【讨论】:

以上是关于Eclipse Java - 包名无效 - 包名中的保留字的主要内容,如果未能解决你的问题,请参考以下文章

如何从android中的包名中获取类名?

如何解释 PyPi 包名中的命名约定

Vue 将git版本信息加入包及包名中

在Android Studio中修改应用包名

eclipse Java项目如何修改包名

eclipse 中怎么设置才能在XML编辑器中提示java中的包名类