在java中使用数字作为包名

Ayu*_*man 9 java package

我已经检查了以下帖子:

https://docs.oracle.com/javase/specs/jls/se7/html/jls-6.html#jls-6.2

所以发布:

这是一个有效的 java 包名吗?

您在 Java 中为个人/业余项目使用什么包命名约定?

我尝试创建一个这样的包:

package 01;
public class Test
{
// ...
}
Run Code Online (Sandbox Code Playgroud)

当我编译我得到这个:

I:\code>javac 01\Test.java
01\Test.java:1: error: <identifier> expected
package 01;
       ^
1 error
Run Code Online (Sandbox Code Playgroud)

我正在寻找名称的语法正确性而不是约定。

是否有 oracle/SUN 参考列出了包的语法,或者它是否遵循与 java 中变量名相同的规则?可能是 Java 语言规范中的一个参考,说包名遵循与变量名相同的规则。

Lui*_*oza 14

找到了:

如果任何生成的包名称组件以数字或任何其他不允许作为标识符首字符的字符开头,请在组件前加上下划线。

JLS 6.1 声明中


Lel*_*mbo 12

链接到 Java 使用的标识符语法,它适用于所有提到标识符的地方,包括但不限于包名。所以01绝对不是一个有效的包名,因为它不是一个有效的标识符。