在void方法中返回void?

时间:2013-05-06 20:11:44

标签: java methods syntax

我知道我可以这样做:

void someMethod(){
 return;
 }

但我在

上遇到语法错误
void someMethod(){
return void;
}

为什么不允许后者?这对我来说更有意义。

编辑:我知道什么是void方法,而且根本不需要返回它(在大多数情况下可能不应该返回)但是我不明白为什么我不能返回void从虚空方法。在我看来,如果你能够写返回,那么方法声明中应该没有关键字(比如构造函数)。

5 个答案:

答案 0 :(得分:5)

我认为两者都应该被避开。我更喜欢这个:

void someMethod() {
    // do stuff; no return at bottom
}

我愿意在JDK源代码中找到许多类似的方法。

答案 1 :(得分:2)

当您将方法声明为void时,您说该方法不会返回值。因此,试图返回值是非法的。此外,return void;有语法错误,因为void不是(实际上不可能)范围内变量的名称。

答案 2 :(得分:2)

void是一个类型,而不是表达式,因此尝试编写return void与尝试编写return int相同:语法无效。

答案 3 :(得分:1)

当您致电return void;时,您使用的是不正确的保留关键字。由于它不会以这种方式期望关键字void,因此会导致错误。

  

Void类是一个不可包含的占位符类来保存   引用表示Java关键字void的Class对象。

如果您希望返回某些内容,则可以return null;参与类似answer中的类型Void,但这是非常规的。最好的办法是完全省略return或只说return;

答案 4 :(得分:0)

return x;表示控件正在离开方法,其结果是x的值。

return;表示控件正在离开方法而没有结果。

类型void是一个零值的类型,因此对于void方法,没有x使return x有意义。

所有非空方法必须执行以下三种操作之一:

  1. 无法退出。
  2. 异常完成。
  3. 通常使用零或一个返回值完成。
  4. 由于void唯一的类型,其中可能的值为零(private未调用的ctors的类不会因null而计数),因此没有非return方法中可能voidreturn有意义。