Java中的非公共顶层(即包私有)类不需要文件名匹配(例如,类Foo可以在Bar.java中定义)。我认为这个功能不再具有任何用处(因为多年前引入了嵌套类)。
有时它会导致问题:经过一些重构后,我结束的文件名与他们的类名不匹配,这使我(在提交时)和Eclipse(虽然他们不得不重新编译某些文件)感到困惑。
有没有办法在Eclipse中禁止这样的类?
答案 0 :(得分:1)
我建议使用Checkstyle,它也有一个非常好的Eclipse插件,eclipse-cs。在给定检查配置的eclipse-cs配置中,在Miscellaneous下,检查可以启用的“外部类型文件名”,其描述为“检查外部类型名称和文件名是否匹配。”例如,类Foo必须位于名为Foo.java的文件中。“。
为了真正“禁止此类”,此检查甚至可以设置为具有“错误”严重性(默认情况下,将阻止构建,至少在Eclipse中) - 而不是默认的“警告”严重性
作为额外的好处,使用Checkstyle并不能锁定您在Eclipse中运行此检查。 Checkstyle可以轻松集成到各种构建工具(如Apache Maven)中,即使您或其他用户没有使用Eclipse,也可以检查此问题。