为了账号安全,请及时绑定邮箱和手机立即绑定

如果条件为真,则将值从 if 条件分配给变量,如果条件本身在 Java 中为真

如果条件为真,则将值从 if 条件分配给变量,如果条件本身在 Java 中为真

冉冉说 2022-07-20 20:35:26
先从我的情况说起, protected void populateBags(ListOfBagsType listOfBags, BagHasButtons bagHasButtons)      if (null != listOfBags && null != listOfBags.getBags()) {          List<Bags> bags = listOfBags.getBags();            if (null != bags.get(0).getColors().getColor().get(0) && bagsWithButtons != null && null != bagHasButtons.getBagsWithButtons().get(0)) {             // do process        }    }}我的问题是,如果条件为真,有没有办法将listOfBags.getBags()的值分配给变量,例如 List<Bags> bags = null; if (null != listOfBags && (null != listOfBags.getBags() = bags))而不是在下一行代码中分配它?我不确定如何在这里使用三元运算符。如果可行,我可以将其用于下一个 if 条件并稍后处理变量。
查看完整描述

2 回答

?
侃侃无极

TA贡献2051条经验 获得超10个赞

虽然可读性较差,但这正是三元运算符的用途。


List<Bags> bags = (listOfBags != null && listOfBags.getBags() != null) ? listOfBags.getBags() : null;

我个人会坚持使用简单的 if 语句,因为它更具可读性:


List<Bags> bags = null;

if(listOfBags != null && listOfBags.getBags() != null) {

  bags = listOfBags.getBags();

}

两者都做同样的事情。


当然,您可以尝试通过提取表示条件的布尔值来使三元运算符更具可读性...


boolean hasBags = listOfBags != null && listOfBags.getBags() != null;

List<Bag> bags = hasBags? listOfBags.getBags() : null;

...但那一点你不妨只使用一个 if 语句。


查看完整回答
反对 回复 2022-07-20
?
狐的传说

TA贡献1804条经验 获得超3个赞

为了补充罗迪的答案,另一种解决方案是:

List<Bags> bags = null != listOfBags? listOfBags.getBags(): null;
if (nbags != null)


查看完整回答
反对 回复 2022-07-20
  • 2 回答
  • 0 关注
  • 127 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号