在void方法结束时返回意味着什么?

Sar*_*nan 12 java

我知道一个void方法不会返回任何值,但我仍然可以编写代码

void nothingDohere() {return;}
Run Code Online (Sandbox Code Playgroud)

那么,如何"无效"使用"返回"声明呢?

Jon*_*eet 13

没有值的return语句只能void方法(或构造函数)中使用,并且只需执行"退出现在的方法"部分返回.考虑带有回报的声明有两个目的:

  • 终止当前方法的执行(finally当然是通过块)
  • 使用该方法计算的值可供调用者使用

方法中的return语句void只能实现其中的第一个; 第二种void方法没有任何意义.

从Java语言规范的14.17节:

没有Expression的return语句必须包含在声明的方法体中,使用关键字void,不返回任何值(第8.4节),或者包含在构造函数体(第8.8节)中.如果返回语句出现在实例初始化程序或静态初始化程序(第7.7节)中,则会发生编译时错误.没有Expression的return语句尝试将控制权转移给包含它的方法或构造函数的调用者.确切地说,没有表达式的return语句总是突然完成,原因是没有值的返回.

  • 我正式可以保证我无法击败Jon Skeet. (2认同)

log*_*yth 5

你的return语句没有参数,所以它没有返回任何东西,因此返回的值是'void'.