在我们的应用程序的Java代码中,我非常确定有很多类和方法具有public
访问权限,但可能只需要包级别访问。
我想做的是按包级别整理包中的代码,只使每个包public
外部真正需要的东西可见,因为这样可以简化我想做的其他重构
我想知道是否有可用的工具可以帮助我解决这个问题。理想情况下,它会分析所有代码并生成一个报告,说明哪些类和方法具有公共访问权限,但只能在同一个包中调用。
Netbeans中的 Find Usages 选项可以帮助我解决这个问题,但是为每个类和方法手动运行并逐行分析输出将需要永远。
答案 0 :(得分:3)
我曾使用ProGuard(字节码操作工具)来查找过去的死代码。 ProGuard manual中有一个关于如何使用它的例子。请注意,该工具还可以执行许多其他操作,并且它并不是它的典型用法,但我知道的唯一可以扫描整个应用程序的死代码。
编辑:所以我误解了这个问题。也许UCDetector就是你想要的。它声称能够检测“可见性可以更改为受保护,默认或私有的代码。但它与Eclipse绑定。我只是在我的代码库上尝试了UCDetector,它似乎完成了这项工作。当然检测到一些方法和可以减少其可见性的类。
答案 1 :(得分:1)
便宜(并且很可能比单次传递安装工具更快)是搜索public class
到class
并将abstract
,final
和interface
。重新编译。修复什么破坏,直到它编译。</ p>
答案 2 :(得分:0)
netbeans SQE plugin可能会有所帮助。
它将FindBugs,PMD,CheckStyle和Lint4j集成到netbeans中。这应该提供警告,公共方法可以包装为私有等。