java 短路判断_随笔 | 奇淫技巧 | Java:记 return 和短路运算符的妙用

在阅读 AtomicStampedReference 的源码中,在 compareAndSet() 方法发现一段代码:

return

expectedReference == current.reference &&

expectedStamp == current.stamp &&

//上方条件全部符合且为True时,执行下方代码

((newReference == current.reference &&

newStamp == current.stamp) ||

casPair(current, Pair.of(newReference, newStamp)));

即在 return 执行方法,并获取最终结果。我编写了一段代码用以测试:

public class Main {

public static void main(String[] args) {

Main main = new Main();

System.out.println(

main.executeIsTrue()

);

System.out.println();

System.out.println(

main.executeIsFalse()

);

}

boolean executeIsTrue() {

return

//这行判断结果为True,可以执行say(String word)方法

(retTrue() && retTrue()) &&

//上述两条都为True,则执行下面代码

(print("OK"));

}

boolean executeIsFalse() {

return

//这行判断结果为False,不能执行say(String word)方法

(retTrue() && retFalse()) &&

//上述两条都为True,则执行下面代码

(print("OK"));

}

boolean retTrue() { return true; }

boolean retFalse() { return false; }

boolean print(String word) { System.out.println(word); return true; }

}

得到返回结果:

OK

true

false

System.out.println(true && false); //结果为false

System.out.println(true && true); //结果为true

System.out.println(false && false); //结果为false

System.out.println(false && true); //结果为false

即充分利用判断运算符(&&、||)返回 boolean 的短路,实现在 return 中实现类似 if 语句的判断。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值