如果我编写一个Java类如下:
public class Test {}
...并将其保存在具有相同类名但大小写不同的文件中,如下所示:
test.java
...那为什么可以编译成功如下:
javac Test.java
?
我认为公共类的名称和它的文件名必须相同,包括case。我很惊讶我没有收到“文件未找到”错误。我有什么误解吗?
如果您在文件系统不区分大小写的操作系统(如 Windows)中进行编译,编译器将不会注意到差异。这是因为对于文件系统 test.java 和 Test.java 是同一个文件。