我知道我可以这样做:
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中没有可能是有意义的。returnvoidreturn
当您调用 时return void;,您以不正确的方式使用了保留关键字。由于它不会void以这种方式期望关键字,因此会导致错误。
Void 类是一个不可实例化的占位符类,用于保存对表示 Java 关键字 void 的 Class 对象的引用。
如果您更愿意返回一些东西,那么您可以return null;通过参数化一个类型Void,就像在这个答案中一样,但这是非常规的。最好的办法是return完全省略或只说return;.