Java中void方法的返回值是什么?传入System.out.println会发生什么?
关于Java中void方法的那些疑问
嘿,这个问题其实挺耐人寻味的,我来给你把Java里的情况讲明白~
首先先明确Stack Overflow对void的定义:
Void:当方法/函数不返回任何值时,用作返回类型的语法占位符的不完全类型。
一、Java里的void方法究竟返回什么?
答案很直接:它什么都不返回。既不是null,也不是其他语言里的undefined,更不会默认抛出异常(除非你在方法内部主动写了throw逻辑)。void就是一个纯粹的语法标记,用来告诉编译器和开发者:这个方法执行完任务就结束,没有任何数据要传递给调用它的地方。
二、如果用System.out.println()调用void方法会发生什么?
别说是运行了,Java编译器直接就会给你报错!因为System.out.println()需要接收一个参数来打印,但void方法没有返回值,根本拿不出东西传给它。举个例子:
public class Test { public static void voidMethod() { System.out.println("我是void方法"); } public static void main(String[] args) { // 下面这行代码编译直接失败! System.out.println(voidMethod()); } }
编译器会提示类似“'void' type not allowed here”的错误,连编译这关都过不了,更别提运行了。
三、是否取决于编程语言?
没错!不同语言对类似“无返回值”的处理确实有差异。比如有些脚本语言里,没有返回值的函数可能会默认返回undefined,但Java是强类型语言,对类型的检查非常严格,void就是明确的“无返回值”标记,不存在隐性返回值这回事。
内容的提问来源于stack exchange,提问作者Carlos de Almeida
相关产品推荐
相关产品推荐

