栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

可以使用Java的三元/条件运算符(?:)来调用方法,而不是分配值吗?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

可以使用Java的三元/条件运算符(?:)来调用方法,而不是分配值吗?

在这种情况下,将三元运算符视为一种方法。说

a ? b :c
的话(出于您正在考虑的目的和目的,请参阅lasseespeholt的评论)等同于调用伪代码方法:

ternary(a, b, c)    if a        return b    else        return c

这就是为什么人们可以说类似的话的原因

x = a ? b : c
;基本上就像说
x = ternary(a, b,c)
。当您说时
(condition) ? doThis() : doThat()
,实际上是在说:

if condition    return doThis()else    return doThat()

看看如果我们尝试用方法代替它们返回的结果会发生什么

 if condition    return ??? else    return ???

考虑甚至没有意义。

doThis()
并且
doThat()
不返回任何内容,因为
void
它不是可实例化的类型,所以该
ternary
方法也不返回任何内容,因此Java不知道如何处理您的语句并抱怨。

有很多解决方法,但是它们都是不好的做法(您可以将方法修改为具有返回值,但不对其返回值做任何事情,可以创建新方法来调用您的方法,然后返回null等。
)。

if
在这种情况下,只使用一条语句会更好。

编辑 此外,还有一个更大的问题。即使您返回值,Java也不会考虑

a ? b : c
任何意义上的语句。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/446533.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号