【问题标题】:Sonar Complains about variable declaration..Cant we use "_"?声纳抱怨变量声明..我们不能使用“_”吗?
【发布时间】:2016-03-23 09:15:19
【问题描述】:
private String producer_queueName = "cn";

名称“consumer_queueName”必须匹配模式“^[a-z][a-zA-Z0-9]*$”。

使用_ 有什么问题? Java 是否不允许您将_ 用于任何变量?

我想使用_。我怎样才能摆脱这个错误:

must match pattern '^[a-z][a-zA-Z0-9]*$'. 

【问题讨论】:

  • 首先您向我们展示了producer_queueName 变量和关于consumer_queueName 的消息。在任何一种情况下,在您的标识符中使用_ 都不是非法的,但它违反了惯例和标准。 Java 使用camelCase

标签: java sonarqube naming-conventions


【解决方案1】:

这只是来自 Sonar 的警告,告诉您您不符合 java 标准。在 Java 中,对私有变量使用驼峰命名法是标准的。 _ 应该只用于静态最终变量。

例如:

//Conforming private variable with camelCase
private String producerQueueName = "cn";

//Conforming private static final variable with "_"
private static final String PRODUCER_QUEUE_NAME = "cn";

Sonar 并没有告诉您您不能做您正在做的事情,只是您不符合标准。这可能会使其他人更难阅读您的代码。

有关 java 命名约定的更多详细信息,请参阅here

如果您希望禁用 Sonar 中的规则,则需要在您正在使用的质量配置文件中禁用该规则。有关如何执行此操作的文档,请参阅 here

【讨论】:

    【解决方案2】:

    声纳消息不是错误。

    基本规则是一种最佳实践,但并非所有人都同意所有这些。每个团队都应该讨论哪些规则是重要的,哪些应该被停用。

    对于这个特定的规则,我认为大多数 Java 程序员会认为这是一个重要的规则,因为(正如 stjepano 已经提到的)这是 Java 命名约定的一部分(例如,变量名的首字母小写的驼峰式大小写,驼峰式类名的首字母大写等)。这使得阅读别人的代码变得更加容易。

    【讨论】:

      【解决方案3】:

      enter image description here

      如果您遇到这种类型的错误^[a-z][a-zA-Z0-9]*$,您应该做的是重命名没有字符的变量作为示例_

      对于这种情况,它将是:

      private String producerQueueName = "cn";
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-01-13
        • 2016-12-17
        • 2015-12-22
        • 1970-01-01
        • 2019-02-06
        • 1970-01-01
        • 2022-01-12
        • 2015-03-23
        相关资源
        最近更新 更多