我从Java编程语言开始;我有一个简单的问题:
在java包中,如果类是包的一部分,则package语句必须是源代码文件中的第一行,然后才能出现任何import语句。
包装声明是否应该在开头有什么有价值的理由?
答案 0 :(得分:7)
有原因吗?当然,语言设计者做出了一个设计决定,它必须在编译单元的开头。来自JLS:
CompilationUnit是Java程序的语法语法(第2.3节)的目标符号(第2.1节)。它由以下作品定义:
CompilationUnit: [PackageDeclaration] {ImportDeclaration} {TypeDeclaration}
因此,您必须拥有零个或一个包声明,然后是零个或多个导入声明,然后是零个或多个类型声明。
可能有所不同吗?绝对;但事实就是如此。
答案 1 :(得分:0)
概念没有理由。您可以先解析整个文件,然后根据需要构建内存表示。但我认为你要求的有价值的理由是在编写解析器的时候,如果你早点知道这个包,那就容易了,因为其他一切都应该在那个包的上下文中完成。