【发布时间】:2011-09-12 10:00:38
【问题描述】:
Java 中的非公共顶级(即包私有)类不需要匹配文件名(例如,类 Foo 可以在 Bar.java 中定义)。我认为这样的功能不再有用了(因为嵌套类是多年前引入的)。
有时它会导致问题:在一些重构之后,我以文件名与它们的类名不匹配结束,这让我(在提交时)和 Eclipse(有些文件没有重新编译,尽管他们不得不重新编译)感到困惑。
有没有办法在 Eclipse 中禁止此类类?
【问题讨论】:
-
您使用的是什么版本的 Eclipse?您是说如果类名与文件名不同,Eclipse 不会编译受包保护的类?
-
我使用的是 3.7.0,但提到的重新编译问题发生在前一段时间(我无法重现)。从那以后,我一直避免使用非公开课程,但现在我想尽可能多地再次使用它们。
-
我也无法重现编译问题。但是我不知道如何让 eclipse 验证非公共类的文件名。但是,我个人不知道有什么方法可以做到这一点。少数错误/警告设置位于
window > preferences > Java > Compiler > Errors/Warnings下,但没有任何东西可以解决您的问题。我认为这可能是因为 Eclipse 无法判断这是否是内部类。将类公开但所有方法不公开(包括构造函数)会有帮助吗?