2014-09-05 55 views
0

我一直在進行大量的代碼評論,並且遇到了布爾變量和if語句的編碼標準衝突的情況。JAVA:在If語句中創建布爾變量或放置參數?

下面是一個方法(1)的一個示例:

boolean isXTrue = getBooleanValue(DataSetX); 

if (isXTrue) { 
//do code 
} 

下面是其他方法(2)的一個示例:

if (getBooleanValue(DataSetX)) { 
//do code 
} 

兩者做同樣的事情和功能就好。在某些情況下,方法1更具可讀性,因爲布爾變量可以命名爲有意義的東西,而方法2則保存更多的行和不必要的布爾變量創建。我可能正在閱讀一個簡單的編碼標準,但我很好奇,如果我們更頻繁地使用方法1,我們可能會產生不必要的布爾值。

很抱歉,如果這是一個愚蠢的問題,但我希望得到一些意見呢:)

+0

你說什麼,沒有什麼更多,兩者幾乎相同(除了因爲變量而在堆棧上的字節),人們可以更具可讀性(取決於,如果(this.hasBeenAnswered())是非常可讀的一個變量名),另一個肯定比較短。 – 2014-09-05 21:32:41

+1

如果可能的話,我總是比較喜歡第二種選擇。如果您爲該方法選擇了適當的名稱,它可以像變量一樣可讀。 – jmrodrigg 2014-09-05 21:35:13

+0

謝謝,這就是我所假設的,但想要更多的意見(因爲我不像其他人那樣對後端內存分配很流暢)。看起來情況很好,如果只需要布爾參數一次,只需通過if語句中的方法調用即可。如果您在整個課程中多次需要它,請爲其創建一個變量。感謝您的輸入! – NiscGuy 2014-09-05 21:37:24

回答

2

這可能是因爲編譯器將優化這兩種情況下,使兩種方式都在運行時是相同的。當然,這取決於您提供的上下文之外的代碼。

至於整個問題:這是你和你的同事或團隊需要達成共識的東西。如果您正在尋找關於選擇哪一個的明確答案,除了個人對可讀性和行數的偏好之外,我認爲您不會得到任何令人信服的結果。

與維護您的代碼庫並決定哪些應該是首選的其他人討論此問題。清楚地解釋原因。然後繼續前進......更重要的問題。

至於我的偏好?我喜歡選項1.對我來說,它更具可讀性,變量名稱可以是描述性的,如isActive,這使代碼更易於閱讀。此外,在調試過程中檢查值可能更容易,因爲您有一個確定的變量,在之後在鏈中使用該變量。再次,這是我的偏好。

+0

NOOOOO你是WRONGNGG它是選擇兩個*在嘴*泡沫*,討論並決定_within你的團隊_ – ataulm 2014-09-05 21:36:49

+0

我同意,這不是一個非常重要的問題。我有OCDD(強迫性障礙開發者障礙),並希望一切都是一樣的,但這不會發生。 :)絕對偏好基於這個對於我們20+的團隊。如果相同的參數不止一次出現,只需創建一個變量,否則只需將該方法放在那裏。感謝您的輸入! – NiscGuy 2014-09-05 21:43:56

+0

+1可讀性參數。 我在這裏可以看到的唯一例外是使用if(isThisTrue())類型的方法,其中名稱已經解釋了所有內容。 – 2014-09-06 01:06:20