簡體   English   中英

如何在 java 中用括號將長 boolean 表達式換行

[英]How to line wrap a long boolean expression with parentheses in java

如何將此表達式包裝在 java 中以提高可讀性,同時約束條件是括號內的子表達式(shouldSendSomething(x) && loooongFunctionName1(x) && looooongFunctionName2(x))太長而不能放在一行中?

!(loooongFunctionName0(x) && loooongFunctionName1(x) && looooongFunctionName2(x)) && looooongFunctionName3(x) && looooongFunctionName4(x) && looooongFunctionName5(x)

也許每個條件都在新行上?

if (!(loooongFunctionName0(x) 
                && loooongFunctionName1(x) 
                && looooongFunctionName2(x)) 
                && looooongFunctionName3(x) 
                && looooongFunctionName4(x) 
                && looooongFunctionName5(x)) {
            
        }

后期編輯:如果條件太多,通常意味着某處存在設計問題,可能需要進行一些重構。

在這種情況下,我建議創建一些輔助方法。 將一些條件包裝到一個方法中,這將簡化if條件。

function foo() {
  return bar && baz && qux;
}

並在您的if條件下使用它,例如:

if (foo()) { ... }

或者

if (!foo()) { ... }

我個人更喜歡將結果分配給一個有意義且簡短(如果可能)的變量,然后在 if 子句中使用它

boolean name0 = loooongFunctionName0(x);
boolean name1 = loooongFunctionName1(x);
boolean name2 = loooongFunctionName2(x);
boolean name3 = loooongFunctionName3(x);
boolean name4 = loooongFunctionName4(x);
boolean name5 = loooongFunctionName5(x);

if (!(name1 && name2 && name3 && name4 && name5)) {
   // something
}

根據 java 的編碼標准,一行的最大字符數可以是 80。所以在這里你可以這樣包裝:

!(loooongFunctionName0(x) 
    && loooongFunctionName1(x) 
    && looooongFunctionName2(x))
&& looooongFunctionName3(x) 
&& looooongFunctionName4(x) 
&& looooongFunctionName5(x)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM