是否有用于分析Java类和方法的访问级别的工具?

时间:2009-05-27 09:05:09

标签: java

在我们的应用程序的Java代码中,我非常确定有很多类和方法具有public访问权限,但可能只需要包级别访问。

我想做的是按包级别整理包中的代码,只使每个包public外部真正需要的东西可见,因为这样可以简化我想做的其他重构

我想知道是否有可用的工具可以帮助我解决这个问题。理想情况下,它会分析所有代码并生成一个报告,说明哪些类和方法具有公共访问权限,但只能在同一个包中调用。

Netbeans中的 Find Usages 选项可以帮助我解决这个问题,但是为每个类和方法手动运行并逐行分析输出将需要永远。

3 个答案:

答案 0 :(得分:3)

我曾使用ProGuard(字节码操作工具)来查找过去的死代码。 ProGuard manual中有一个关于如何使用它的例子。请注意,该工具还可以执行许多其他操作,并且它并不是它的典型用法,但我知道的唯一可以扫描整个应用程序的死代码。

编辑:所以我误解了这个问题。也许UCDetector就是你想要的。它声称能够检测“可见性可以更改为受保护,默认或私有的代码。但它与Eclipse绑定。我只是在我的代码库上尝试了UCDetector,它似乎完成了这项工作。当然检测到一些方法和可以减少其可见性的类。

答案 1 :(得分:1)

便宜(并且很可能比单次传递安装工具更快)是搜索public classclass并将abstractfinalinterface。重新编译。修复什么破坏,直到它编译。<​​/ p>

答案 2 :(得分:0)

netbeans SQE plugin可能会有所帮助。

它将FindBugs,PMD,CheckStyle和Lint4j集成到netbeans中。这应该提供警告,公共方法可以包装为私有等。