有人能解释一下这行代码是干什么的吗?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