可能重复:
Can I compile a java file with a different name than the class?
为什么文件必须只包含一个同名的Java类?有没有解决这个限制的方法?
答案 0 :(得分:1)
只有public
类的名称必须等同于文件名。你为什么要打破这个?
答案 1 :(得分:1)
这是因为普通的ClassLoader(URLClassLoader
)使用类(和包)名称来从文件系统,JAR文件或Web服务器(在applet或Java WebStart的情况下)中查找和加载类。
为了解决这个问题,您必须实现自己的ClassLoader(并不是特别困难),如果您还希望类名与源文件无关,那么您需要实现/修改编译器(可能要困难得多)。
答案 2 :(得分:0)
你有没有...尝试搜索谷歌?或至少stackoverflow?这只是一个约定,而且它只是指文件名与文件中唯一的公共类相同。对于java约定this是一个很好的来源:)
答案 3 :(得分:-7)
Java只是一种破碎的语言,您只需要接受文件名和路径名必须与类名匹配。
不 - 你不想打破它。