【问题标题】:How to use the ternary operator in Java without an else branch如何在没有 else 分支的情况下在 Java 中使用三元运算符
【发布时间】:2015-01-21 13:57:54
【问题描述】:

我有这个表达式,我想使用 ? 运算符将它放在一行中。

for (Area a : listaArea) {
    if (a.getIdArea() == user.getIdArea()) {
        user.setNomArea(a.getNomArea());
    }
}

这是我尝试过的:

for (Area a : listaArea) {a.getIdArea() == user.getIdArea() ? user.setNomArea(a.getNomArea())}

如何将 if 转换为 ? 表达式?

【问题讨论】:

  • 这个问题真的不是很好的复制品。
  • 附带说明:在您的情况下,我不会使用三元运算符,因为它的可读性较差。
  • 假设集合..是无效的,你不能这样做。
  • 您不能在 void 上下文中使用三元运算符。见here
  • 重新打开审阅者 - 正如@Jens 指出的错误问题的重复,此问题已关闭 - 请投票重新打开,以便我们可以投票以正确的重复再次关闭

标签: java


【解决方案1】:

正如 JLS 所说:

这是第二个或第三个操作数的编译时错误 表达式是对 void 方法的调用。

假设您的 setter 更有可能没有返回类型,那么在这种情况下不可能使用三元运算符。

【讨论】:

    猜你喜欢
    • 2015-06-05
    • 2013-04-28
    • 2013-12-01
    • 2011-02-25
    • 2021-07-08
    • 1970-01-01
    • 2012-08-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多