是否有Sun命令行参数在引用未使用的import
语句时提供警告(或错误)?嵌入式eclipse javac编译器提供了这样的警告,但是如果Sun / Oracle编译器将它作为-Xlint:XXX
个参数之一,则没有详细记录。
我正在寻找清理现有的Java代码库,它是使用Ant从命令行构建的,我希望将这些语句的跟踪和报告集成到每晚构建中。
有些人认为导入对编译过程没有影响,但是查看编译器操作(使用-verbose标志)表示编译器无条件地加载导入的类,即使它们未在写入的输出中使用。因此,删除未使用的导入似乎比一目了然的代码理解更有益处。
答案 0 :(得分:2)
我建议您查看FindBugs,以便在每晚构建过程中报告代码的清洁度。与JDK Java编译器或Eclipse中的编译器相比,FindBugs可以检测到更多潜在的问题。
答案 1 :(得分:1)
使用checkstyle,并配置要使用的UnusedImports
模块(或选择已使用它的默认配置)。
Checkstyle将未使用的导入定义为:
java.lang
包导入。实际上,它会创建一个不使用java.awt.Component
的报告(以及行号)。
import java.awt.Component;
class FooBar {
...
}
它确实有一些限制,在某种意义上它可能被与导入同名的成员混淆;但是,这种失败很少发现它适用于大多数开发人员。
从文件到限制
import java.awt.Component;
class FooBar {
private Object Component; // IMHO bad practice
...
}
不将Component
标记为未使用。