0

我对java很陌生,所以请耐心等待。我正在尝试压缩我的一些代码,并且想知道如何使用 && 或 || 编写三元运算符。那么我如何将下面的代码变成速记三元运算符。

if(homePage != null && currentParentPage.getPath().equals(homePage.getPath())){
    isParent = true;
}
4

3 回答 3

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;

修改假腿上的 isParent,这不是原始代码所做的。

于 2013-04-09T22:25:12.847 回答
1

三元运算符旨在表示 if-else 情况。您的案例仅包含一个 if 子句,因此您不需要一个。如果您明确想要将 isParent 设置为 false (如果失败),则可以使用一个,即

isParent = (homePage != null &&
  currentParentPage.getPath().equals(homePage.getPath()))  ? true  :  false;

这意味着如果 ? 如果为真,则返回第一个值 (true),否则返回第二个值 (false)。

根据下面的评论,您真的不需要使用三元数进行布尔赋值。这可以简化为:

    isParent = (homePage != null &&
  currentParentPage.getPath().equals(homePage.getPath()));
于 2013-04-09T22:17:52.810 回答
1
(homePage != null && currentParentPage.getPath().equals(homePage.getPath()))
        ? isParent = true
        : isParent = false;

我建议以最简单的方式执行此操作 - 而不是使用三元运算

 isParent = (homePage != null && currentParentPage.getPath().equals(homePage.getPath()));
于 2013-04-09T22:18:37.717 回答