为什么java方法名称不应包含下划线?

时间:2014-05-10 14:56:20

标签: java pmd

我正在使用 PMD 来检查java编码违规。 我正在编写自动化测试用例,并给出如下方法名称:

public void testCaseMethod_4_2_16(){
   //some implementation 
}

其中4_2_16是测试用例编号4.2.16

当我检查 PMD 违规时,它显示方法名称不应包含下划线,并且此违规行为显示为阻止程序根据PMD规则。 所以这是我的问题:

  • 为什么方法名称不应包含下划线定义为阻止程序 PMD错误
  • 我们应该避免什么样的PMD违规行为
  • 我们应该尝试修复哪种违规行为?

至于我的理解,至少我们应该避免PMD显示的前两级违规。 有关PMD规则的任何帮助将不胜感激。谢谢

4 个答案:

答案 0 :(得分:6)

这是一个已设置的标准,以便人们可以轻松阅读彼此的代码,从而使代码更易于维护。

以下引用来自Oracle的Java code conventions网站:

  
      
  • 一件软件的80%的终身成本用于维护。

  •   
  • 原作者几乎不会维护任何软件。

  •   
  • 代码约定提高了软件的可读性,使工程师能够更快更彻底地理解新代码。

  •   

答案 1 :(得分:4)

Java更喜欢 camelCase 表示法。 Java code conventions表示你应该尽可能避免在方法或变量名中使用下划线。

在您的情况下,PMD的默认优先级失败。这个规则应该是“很好的”级别,但绝对不是阻碍问题。

我建议你使用SonarQube,它重新确定了PMD规则的优先顺序,大多数情况下效果更好。您找到的规则仅在主要级别(低于阻止程序和严重级别)。

Naming Conventions rule in Sonar

如果您对结果仍不满意,可以使用SourceMeter plugin for SonarQube,它也有不同(可能更好)的PMD规则优先级。

答案 2 :(得分:3)

虽然有很多意见,但我喜欢将生产质量保证和测试代码分开。

如果由于某种原因无法做到这一点,我宁愿停用(大部分)测试代码的警告。我认为不值得花时间使测试代码漂亮(并且方法名称中的下划线对我来说只是造型),而生产代码仍有严重警告。

答案 3 :(得分:0)

在命名标识符时允许使用java下划线。我不知道为什么PMD显示违规,但您可以停用警告并继续。在命名标识符时允许在java中使用UNDERSCORE。

我认为它可以帮到你......