java强制包声明

Gio*_*nJh 5 java package

在java中,为什么每个类都强制声明它所属的包。我的意思是,包层次结构已经使用文件系统的文件夹结构进行了描述/强制执行。在我看来,这一行:

package com.mypackage;
Run Code Online (Sandbox Code Playgroud)

由于每个类的第一行在某种程度上都是冗余信息。但我很确定它的存在是有充分理由的。

Jon*_*eet 4

我的意思是,包层次结构已经使用文件系统的文件夹结构进行了描述/强制执行。

不必要。虽然以这种方式组织代码当然是个好主意,但这不是必需的。另请记住,源代码不必首先位于文件系统中。

从根本上讲,我认为将源文件的内容视为重要的事情是完全合理的。哎呀,您可以将其带到另一个极端,并假设由文件名声明的类 - 这不仅仅是一种约定,而且是编译器对公共顶级类强制执行的明确有效的约定(在 JLS 中)。