You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

返回类型为void的Method Invocation Expression求值结果是什么?

Java void方法调用表达式的求值疑问与解答

问题背景

《Oracle Java教程》指出:表达式是由变量、运算符和方法调用组成的结构,符合语言语法规则,最终会求值为单个值。

现有如下Java方法:

public void doNothing() { }

那么方法调用表达式 doNothing() 的求值结果是什么?按照常规认知,void 代表方法不返回任何内容,这和教程里的描述存在矛盾,对此感到疑惑。

解答

返回类型为void的方法调用表达式是Java表达式规则中的特殊情况——它属于无值表达式,并不会生成任何值。

教程里的描述是针对绝大多数有返回值的表达式场景,而void方法调用表达式仅执行方法体内的逻辑(此例中doNothing()没有任何执行逻辑),不会产生可被使用的返回结果。这类表达式也不能用于需要值的场景,比如尝试把它赋值给变量:var x = doNothing(); 会直接触发编译错误。

Java语言规范中明确了这类表达式的特殊性,它是“表达式最终求值为单个值”这一通用规则的例外情况。


内容的提问来源于stack exchange,提问作者efie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 15:20:51