有人能解釋一下這行代碼是幹什麼的嗎?Java三元運算符邏輯解釋
public String getTitleNavContainer(boolean isThisLandingPage) {
return isThisLandingPage ? StringUtils.EMPTY : "title-nav-container";
}
我可以看到它在做什麼,但我不知道我怎麼會修改這一所以,如果它是登陸頁它做一件事情,否則做其他的事情。
感謝您的幫助。
有人能解釋一下這行代碼是幹什麼的嗎?Java三元運算符邏輯解釋
public String getTitleNavContainer(boolean isThisLandingPage) {
return isThisLandingPage ? StringUtils.EMPTY : "title-nav-container";
}
我可以看到它在做什麼,但我不知道我怎麼會修改這一所以,如果它是登陸頁它做一件事情,否則做其他的事情。
感謝您的幫助。
上面一行被稱爲ternary operator
Ternary Operator
需要三個參數及其須藤代碼
condition ? statement1 : statement2
條件:這一部分應具有有效的條件語句並且應該只返回布爾值
語句1:如果條件是true
然後statement1
將執行
聲明2:如果條件是false
然後statement2
將執行
現在看看你的代碼塊
public String getTitleNavContainer(boolean isThisLandingPage) {
return isThisLandingPage ? StringUtils.EMPTY : "title-nav-container";
}
如果isThisLandingPage
是true
那麼StringUtils.EMPTY
將執行其他操作title-nav-container
執行
爲了快速理解,轉換代碼if-else
聲明
if (isThisLandingPage)
{
return StringUtils.EMPTY;
}
else
{
return title-nav-container;
}
這是一個很好的解釋,謝謝 – user2713512
return isThisLandingPage ? StringUtils.EMPTY : "title-nav-container";
是一樣的:
public String getTitleNavContainer(boolean isThisLandingPage) {
if (isThisLandingPage){
return StringUtils.EMPTY;
}
else{
return "title-nav-container";
}
}
這只是一個寫短了路,使代碼更易於閱讀。
我現在看到。謝謝 – user2713512
您正在使用三元運算符(或條件運算符)是Java if/then/else語法的替代方法,但它超出了該範圍,甚至可以在Java語句的右側使用。
基本上它計算謂詞
;(boolean expression) (if it is true) (if it is false)
isThisLandingPage ? StringUtils.EMPTY : "title-nav-container";
而這個表達式返回取決於布爾表達式值,該值是該函數將返回空字符串「」從這個class doc或字符串「標題的一個-nav容器」。
我希望這可以幫助您
'...沒有一兩件事,否則做一些else' - 什麼事? – Eran