2012-01-10 137 views
9

如果一个需要返回Void类型,它的Javadoc描述为在void返回类型

甲类,它是一个不可实例化占位符类成保持 参考代表Java关键字空隙的Class对象。

为什么下列要求还要求退回null

public Void blah() { 
    return null; // seems to always want null 
} 
+1

因为'Void'不是关键字,而是'Object'。 – BalusC 2012-01-10 16:33:20

+0

小写'虚空' – 2012-01-10 16:33:46

+0

可能重复http://stackoverflow.com/questions/676663/what-do-i-return-if-the-return-type-of-a-method-is-void-not-void – Anthea 2012-01-10 16:34:25

回答

14

Void是像任何其他一个类,因此返回Void一个函数必须返回的引用(如null)。实际上,Voidfinal且无可证实,这意味着null是返回Void的函数可能返回的唯一东西。

当然public void blah() {...}(小写v)不必返回任何东西。

如果你想知道关于可能的用途为Void,看到Uses for the Java Void Reference Type?

+0

*“当然'public void blah(){...}'(小写v)不必返回任何东西。”*的确,**必须**。 – 2012-01-10 16:39:09

3

虚空是物体“包装”为void类型。返回类型void不会返回返回值,但Void会返回。您不能在泛型中使用void或任何基本类型。

1

由于文档说这是一个无关紧要的占位符类,因此您无法获取实例,但必须自Void != void以来才能返回某个实例。 Void实际上是一个,因此被视为需要实例或null返回的任何其他类/类型。

3

Java中正确的关键字是void,而不是Void(注意在开始处使用小写字母)。 Void(大写)是,根据documentation

Void类是一个不可实例化占位符类保持于表示Java关键字空隙类对象的引用。

相关问题