关于Void返回类型

12
如果需要返回 Void 类型,其 Javadoc 描述为“一个不可实例化的占位符类,用于保存表示 Java 关键字 void 的 Class 对象的引用”。那么为什么下面的代码仍然需要返回 null
public Void blah() {
    return null; // It seems to always want null
}

2
因为Void不是一个关键字,而是一个Object - BalusC
可能重复:https://dev59.com/uHRB5IYBdhLWcg3wQVSV - Anthea
4个回答

20

Void 是一个普通的类,因此返回 Void 的函数必须返回一个引用(例如 null)。事实上,Void 是被声明为 final 和不能实例化的,这意味着一个返回 Void 的函数只能返回 null

当然,带有小写 vpublic void blah() {...} 函数不需要返回任何内容。

如果你想知道 Void 的可能用途,请参见Java Void 引用类型的用途?


2
当然 public void blah() {...}(小写的v)不需要返回任何东西。确实,必须不返回任何东西。 - T.J. Crowder

4

Void是void类型的“包装器”对象。 void返回类型不返回返回值,但Void会返回。您无法在泛型中使用void或任何原始类型。


3

Java中正确的关键字是void,而不是Void(注意首字母小写)。根据文档Void(大写)是:

Void类是一个无法实例化的占位符类,用于保存表示Java关键字void的Class对象的引用。


1

正如文档所述,它是一个不可实例化的占位符类,因此您无法获得实例,但是您必须返回一些内容,因为Void != voidVoid实际上是一个,因此像任何其他类/类型一样需要返回实例或null。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接