private String producer_queueName = "cn";
名称'consumer_queueName'必须匹配模式'^ [a-z] [a-zA-Z0-9] * $'。
使用_
有什么问题?
Java不允许您对任何变量使用_
吗?
我想使用_
。我怎样才能摆脱这个错误:
must match pattern '^[a-z][a-zA-Z0-9]*$'.
答案 0 :(得分:6)
这只是Sonar的一个警告,告诉你你不符合java标准。在Java中,将camelCase用于私有变量是标准的。 _应仅用于静态最终变量。
例如:
//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。
答案 1 :(得分:1)
声纳消息不是错误。
基本规则是一种最佳实践,但不是每个人都同意所有这些规则。每个团队应该讨论哪些规则很重要,哪些规则应该停用。
对于这个特殊的规则,我认为大多数Java程序员会认为这是一个重要的规则,因为(正如stjepano已经提到过的)这是Java命名约定的一部分(例如,带有变量名称的首字母小写的camel case,camel第一个字母大写为类名等的案例。这使得阅读其他人的代码变得更加容易。
答案 2 :(得分:0)
如果您遇到这种类型的错误 ^[a-z][a-zA-Z0-9]*$
,您应该做的是重命名没有 Characters 的变量,例如 _
对于这种情况,它将是:
private String producerQueueName = "cn";