簡體   English   中英

Eclipse和短路評估

[英]Eclipse and short circuit evaluation

我正在嘗試使用短路評估來簡化檢查的編寫,但是在if子句的最后一個語句中,eclipse調用“本地變量繼承可能尚未初始化”,我是否正確使用了評估方法? IDE可以理解該語句的評估結果嗎?

if ((className.startsWith("Svl")) &&
                ((inherit = aAST.findFirstToken(TokenTypes.EXTENDS_CLAUSE)) == null)
                || !(inherit.getText().equals("Servlet******"))) {
            log(aAST.getLineNo(), "error" + tokenIdent.getText());
        }

您的括號有誤,這就是導致該錯誤的原因。 簡化后,布爾表達式的結構為

(A && B) || C

在B中您指定要inherit 如果A失敗,則(A && B)短路為false,不評估B,並且需要評估C以找出最終結果。 顯然,在評估C時, inherit可能尚未初始化。

根據實際需要,可以交換A和B的位置。這將確保始終對B求值。 另外,您真正需要的可能是A &&(B || C)。 要求由您決定。

暫無
暫無

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

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