如何防止Java代码中的完全限定名称

Sum*_*mit 6 java checkstyle intellij-14

如果java项目在代码中使用完全限定名称,是否可以使用checkstyle进行检查.我们想要阻止像这样的代码

if (org.apache.commons.lang3.StringUtils.isBlank(name)) { 
 ....
 ....
} 
Run Code Online (Sandbox Code Playgroud)

并希望强制执行相反导入的包.

还有其他工具可以帮助我们实现它吗?

bar*_*uin 2

据我所知,Checkstyle 无法做到这一点。然而,有一个名为UnnecessaryFullyQualifiedName 的PMD 规则可能值得一看。存在 PMD 的 IntelliJ 插件,例如QAPlug PMD,可以免费下载。

不过,要做好看到很多误报的准备。例如,如果没有完全限定的类名(例如foo.Abar.A),则无法引用共享相同简单名称的两个类。也可能 PMD 确实检查了这种情况,可能值得一试。