我知道我可以这样做:
void someMethod(){
return;
}
但我得到一个语法错误
void someMethod(){
return void;
}
为什么不允许后者?这对我来说更有意义。
编辑:我知道什么是 void 方法,而且我根本不必从它返回(在大多数情况下可能不应该),但我不明白为什么我不能从 void 返回 void方法。在我看来,如果您能够编写 return; 在方法声明中应该没有关键字(如构造函数)。
我认为两者都应该被回避。我更喜欢这个:
void someMethod() {
// do stuff; no return at bottom
}
我愿意你会在 JDK 源代码中找到很多类似这样的方法。
void
是一种类型,而不是表达式,因此尝试写入return void
与尝试写入相同return int
:语法上无效。
当您将方法声明为void
时,您是在说该方法不返回值。因此,试图返回一个值是非法的。此外,return void;
还有一个语法错误,因为void
它不是(实际上不能是)范围内变量的名称。
return x;
表示控件正在离开该方法并且其结果是 的值x
。
return;
表示控件正在离开方法而没有结果。
该类型void
是具有零值的类型,因此对于void
方法来说没有任何x
意义return x
。
所有非 void 方法必须做以下三件事之一:
由于void
是唯一具有零可能值的类型(具有private
未调用 ctor 的类不计入,因为),因此在非方法null
中没有可能是有意义的。return
void
return
当您调用 时return void;
,您以不正确的方式使用了保留关键字。由于它不会void
以这种方式期望关键字,因此会导致错误。
Void 类是一个不可实例化的占位符类,用于保存对表示 Java 关键字 void 的 Class 对象的引用。
如果您更愿意返回一些东西,那么您可以return null;
通过参数化一个类型Void
,就像在这个答案中一样,但这是非常规的。最好的办法是return
完全省略或只说return;
.