为什么文件必须只包含一个同名的Java类?

时间:2011-07-30 07:13:14

标签: java

  

可能重复:
  Can I compile a java file with a different name than the class?

为什么文件必须只包含一个同名的Java类?有没有解决这个限制的方法?

4 个答案:

答案 0 :(得分:1)

只有public类的名称必须等同于文件名。你为什么要打破这个?

答案 1 :(得分:1)

这是因为普通的ClassLoader(URLClassLoader)使用类(和包)名称来从文件系统,JAR文件或Web服务器(在applet或Java WebStart的情况下)中查找和加载类。

为了解决这个问题,您必须实现自己的ClassLoader(并不是特别困难),如果您还希望类名与源文件无关,那么您需要实现/修改编译器(可能要困难得多)。

答案 2 :(得分:0)

你有没有...尝试搜索谷歌?或至少stackoverflow?这只是一个约定,而且它只是指文件名与文件中唯一的公共类相同。对于java约定this是一个很好的来源:)

答案 3 :(得分:-7)

Java只是一种破碎的语言,您只需要接受文件名和路径名必须与类名匹配。

不 - 你不想打破它。