[英]java conditional how do I make sure it checks all if statements
我無法讓以下查詢方法正常工作。 如果isRestricted
所有狀態為受限的報告,我都需要它返回。 如果為isClosed,則返回所有已關閉狀態的報告。 它適用於isRestricted
,以受限狀態返回所有報告。 它也可以返回除約束和關閉之外的所有內容,這很好,但是只返回if isClosed
條件的所有內容。 現在,如果將isClosed
條件移到頂部,則它適用於isClosed,但不適用於isRestricted
。 我想念什么?
protected String getRestrictedOrClosedTerm() {
if (isRestricted == null || "false".equals(isRestricted)) {
return "-status:restricted -status:closed ";
}
if (isRestricted.isEmpty()) {
return "";
}
if ("true".equals(isRestricted)) {
return "+status:restricted ";
}
if (isClosed == null || "false".equals(isClosed)) {
return "-status:closed ";
}
if (isClosed.isEmpty()) {
return "";
}
if ("true".equals(isClosed)) {
return "+status:closed ";
}
return "";
}
就像它停止在:
if ("true".equals(isRestricted)) {
return "+status:restricted ";
}
有趣的是,如果使用此選項,我會得到理想的結果,但不確定為什么:
protected String getRestrictedOrClosedTerm() {
if ("true".equals(isClosed)) {
return "+status:closed ";
}
if ("true".equals(isRestricted)) {
return "+status:restricted ";
}
if (isRestricted == null || "false".equals(isRestricted)) {
return "-status:restricted -status:closed ";
}
return "";
}
當您在方法中使用return
時,它將以返回的值退出該方法。 如果使用StringBuilder之類的東西,則可以看到所有輸出:
protected String getRestrictedOrClosedTerm()
{
StringBuilder sb = new StringBuilder();
if (isRestricted == null || "false".equals(isRestricted)) {
sb.append("-status:restricted -status:closed\n");
}
if (isRestricted.isEmpty()) {
sb.append("empty\n");
}
if ("true".equals(isRestricted)) {
sb.append("+status:restricted\n");
}
if (isClosed == null || "false".equals(isClosed)) {
sb.append("-status:closed\n");
}
if (isClosed.isEmpty()) {
sb.append("empty\n");
}
if ("true".equals(isClosed)) {
sb.append("+status:closed\n");
}
return sb.toString();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.