首页 > 解决方案 > Java 文件名中的应该或必须

问题描述

我正在学习 Java,刚刚遇到 2 条指令:

  1. 一个类必须有一个匹配的文件名
  2. 请记住,java文件的名称应该与类名匹配

问:

应该在 (2) 中LIKEDIFFERENT 必须在 (1) 中?-> (1), (2)。

什么是正确的??

标签: javaclassclass-names

解决方案


正如评论中提到的,这并不像最初看起来那么清楚,部分原因是 JLS 不需要将包存储在文件系统中:

7.6. 顶级类型声明

当且仅当包存储在文件系统中(第 7.2 节)时,如果在由类型名称组成的名称下的文件中未找到类型,则主机系统可能会选择强制执行它是编译时错误的限制如果满足以下任一条件,则加上扩展名(例如 .java 或 .jav):
[...]

所以你的答案基本上是:

可能是“必须的”,具体取决于您的编译器。


推荐阅读