有人可以解释一下这行java代码在做什么吗?
public String getTitleNavContainer(boolean isThisLandingPage) {
return isThisLandingPage ? StringUtils.EMPTY : "title-nav-container";
}
我可以看到它在做什么,但我想知道如何修改它,以便如果它是登陆页面,它会做一件事,否则做其他事情。
感谢您的帮助。
答案 0 :(得分:3)
return isThisLandingPage ? StringUtils.EMPTY : "title-nav-container";
与:
相同public String getTitleNavContainer(boolean isThisLandingPage) {
if ( isThisLandingPage ){
return StringUtils.EMPTY;
}
else{
return "title-nav-container";
}
}
它只是一种较短的编写方式,使代码更易于阅读。
答案 1 :(得分:1)
您使用三元运算符(或条件运算符)是Java if / then / else语法的替代方法,但它超越了它,甚至可以在Java语句的右侧使用。
基本上它会评估谓词
;(boolean expression) (if it is true) (if it is false)
isThisLandingPage ? StringUtils.EMPTY : "title-nav-container";
此表达式根据布尔表达式返回该值,该值是函数返回空字符串的值""来自此class doc或字符串" title-nav-container"。
我希望这可以帮到你
答案 2 :(得分:1)
上述行称为ternary operator
Ternary Operator
需要三个参数,其sudo代码为
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;
}