检查返回值是否不为空,如果是,则在一行中分配它,使用一个方法调用
2022-08-31 11:19:52
Java充斥着这样的语句:
if(cage.getChicken() != null) {
dinner = cage.getChicken();
} else {
dinner = getFreeRangeChicken();
}
这需要两次调用,然后才能将返回的对象分配给 。getChicken()
dinner
这也可以写在一行中,如下所示:
dinner = cage.getChicken() != null? cage.getChicken() : getFreeRangeChicken();
但是,唉,仍然有两个调用.getChicken()
当然,我们可以分配一个局部变量,然后再次使用三元运算符来分配它,如果它不是空的,但这是两行,不是那么漂亮:
FutureMeal chicken = cage.getChicken();
dinner = chicken != null? chicken : getFreeRangeChicken();
那么有没有办法说:
变量 var = 某个值,如果某个值不为空或某个其他值;
我想我在这里只是在谈论语法,在编译代码之后,在性能意义上编写代码的方式可能没有太大区别。
由于这是如此常见的代码,因此最好有一个单行代码来编写它。
是否有任何其他语言具有此功能?