2016-03-23 38 views
1
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]*$'. 
+2

首先你向我們展示了'producer_queueName'變量和一個關於'consumer_queueName'的消息。無論哪種情況,在您的標識符中使用'_'都是非法的,但這違背了慣例和標準。 Java使用'camelCase'。 – stjepano

回答

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"; 

聲納是不會告訴你,你不能你在做什麼,只是你不符合標準規定。這可能會讓其他人更難閱讀您的代碼。

有關java命名約定的更多詳細信息,請參閱here

如果您希望在Sonar中禁用該規則,則需要禁用正在使用的質量配置文件中的規則。有關如何執行此操作的文檔,請參閱here

1

聲吶信息不是錯誤。

基本規則是一種最佳實踐,但不是所有人都同意。每個團隊都應該討論哪些規則很重要,哪些規則應該停用。對於這個特定的規則,我認爲大多數Java程序員會認爲這是一個很重要的規則,因爲(正如stjepano已經提到的),這是Java命名約定的一部分(例如,第一個字母小寫的變量名,首字母大寫的駱駝案例等)。這使得閱讀別人的代碼變得更容易。