我对java很新,所以请耐心等待。我正在尝试压缩我的一些代码,并想知道你是如何使用&&编写一个三元运算符的。或者是||。那么我如何将下面的代码转换成速记三元运算符。
if(homePage != null && currentParentPage.getPath().equals(homePage.getPath())){
isParent = true;
}
答案 0 :(得分:2)
实际上,要将代码转换为三元组,您必须编码
isParent = (homePage != null && currentParentPage.getPath().equals(homePage.getPath()))
? true : isParent;
做
isParent = (homePage != null && currentParentPage.getPath().equals(homePage.getPath()));
或
isParent = (homePage != null && currentParentPage.getPath().equals(homePage.getPath()))
? true : false;
在false leg上修改isParent,这不是原始代码所做的。
答案 1 :(得分:1)
三元运算符旨在表示if-else情况。您的案例只包含if子句,因此您不需要。如果明确要将isParent设置为false,则可以使用一个,如果失败,即
isParent = (homePage != null &&
currentParentPage.getPath().equals(homePage.getPath())) ? true : false;
这意味着如果之前的条件?保持为true,返回第一个值(true),否则返回第二个值(false)。
根据下面的评论,你真的不需要使用三元组进行布尔赋值。这可以简化为:
isParent = (homePage != null &&
currentParentPage.getPath().equals(homePage.getPath()));
答案 2 :(得分:1)
(homePage != null && currentParentPage.getPath().equals(homePage.getPath()))
? isParent = true
: isParent = false;
我建议以最简单的方式执行此操作 - 而不是使用三元操作
isParent = (homePage != null && currentParentPage.getPath().equals(homePage.getPath()));