PMD

2024/4/11 17:36:29

PMD 检查java代码:可以去掉无用的括号(UselessParentheses)

这个规则的优先级比较低。 https://docs.pmd-code.org/pmd-doc-6.55.0/pmd_rules_java_codestyle.html#uselessparentheses 无用的括号可以去掉。当然,有时候为了避免理解起来困难,加上括号反而更加清晰。 例如: public static short calc…

PMD代码检查:为了提升性能,正确使用记录日志的语句(GuardLogStatement)

https://docs.pmd-code.org/pmd-doc-6.55.0/pmd_rules_java_bestpractices.html#guardlogstatement 对应记录日志的语句,要首先检查对应的日志级别有没有实际打开;如果没有实际打开,那么就要跳过字符串的生成环节,以提升性能。 另…

Intellij IDEA 使用checkstyle、pmd、findbugs检查静态代码质量

checkstye、pmd、findbugs的对比 在IDEA setting-plugins 下分别搜索 checkstyle、pmd、findbugs 安装,安装后要重启IDEA。 checkstyle 如上图打开checkstyle面板。 可以自己设置检查规则,在setting-other setting-Checkstyle,点击右上角号添加自己的…

自定义SonarQube Java规则

自定义SonarQube扫描Java Rule 在介绍如何自定义规则之前,先介绍一下这几个产品: SonarQube 代码质量管理平台PMD 源代码分析器FindBugs Java源代码分析器,查找代码BugSonar-PMD Sonar市场提供的PMD插件开源项目P3C Alibaba的代码规范&#…

PMD 检查java代码:避免将内部数组直接返回给调用者(MethodReturnsInternalArray)

https://docs.pmd-code.org/pmd-doc-6.55.0/pmd_rules_java_bestpractices.html#methodreturnsinternalarray 直接将内部数组暴露给调用者破坏了封装性,因为调用者可能在拥有内部数组的对象外部更改或者删除数组的元素。返回内部数组的拷贝会更加安全。 例如&…

PMD 检查java代码:在条件语句中避免使用硬编码的字面量(AvoidLiteralsInIfCondition )

https://docs.pmd-code.org/pmd-doc-6.55.0/pmd_rules_java_errorprone.html#avoidliteralsinifcondition 在条件语句中,避免避免使用硬编码的字面量。可以将字面量声明为有描述意义的静态成员或者私有成员,提升可维护性。默认忽略"-1" 和&qu…

PMD 检查java代码:过早声明变量(PrematureDeclaration)

https://docs.pmd-code.org/pmd-doc-6.55.0/pmd_rules_java_codestyle.html#prematuredeclaration 检查变量是否过早声明。如果变量在一个代码块前声明,但这个代码块没有用到该变量且该代码块有可能返回或者抛出异常,导致定义的变量用不到,就…

PMD 检查java代码:避免将构造器/方法参数传入的数组直接存储(ArrayIsStoredDirectly)

https://docs.pmd-code.org/pmd-doc-6.55.0/pmd_rules_java_bestpractices.html#arrayisstoreddirectly 构造器/方法接收到数组后,不应该直接将它们存储,而应该克隆对象并存储拷贝。这样用户以后修改了克隆数组也不会影响原数组。 该规则有属性allowPr…

PMD代码检查:如果多线程访问map,应使用ConcurrentHashMap(UseConcurrentHashMap )

https://docs.pmd-code.org/pmd-doc-6.55.0/pmd_rules_java_multithreading.html#useconcurrenthashmap 如果在java 5及更新的版本上运行java程序,并且有多线程访问map的需求,那么应该使用ConcurrentHashMap ,而不是HashMap,因为…