声纳抱怨变量声明..我们不能使用“_”吗?

Sonar Complains about variable declaration..Cant we use "_"?

private String producer_queueName = "cn";

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

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

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

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

这只是 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

声纳信息不是错误。

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

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

enter image description here

如果你有这种类型的错误^[a-z][a-zA-Z0-9]*$你应该做的是重命名你的变量而不用字符作为例子 _

对于这种情况,它将是:

private String producerQueueName = "cn";