2012-01-10 18 views
9

si uno necesita devolver un tipo Void, que describe como JavadocEl tipo de retorno vacío

Una clase que es un marcador de posición de clase crearse instancias para almacenar una referencia a la clase de objeto que representa el vacío de palabras clave de Java.

¿Por qué sigue siendo necesario devolver null?

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

porque 'Void' no es una palabra clave, sino un' Object'. – BalusC

+0

minúscula 'Void' –

+0

posible duplicación http://stackoverflow.com/questions/676663/what-do-i-return-if-the-return-type-of-a-method-is-void-not-void – Anthea

Respuesta

14

Void es una clase como cualquier otro, por lo que una función que devuelve Void tiene que devolver una referencia (tales como null). De hecho, es Voidfinal y crearse instancias, lo que significa que null es la única cosa que una función que devuelve Void podría volver.

Por supuesto public void blah() {...} (con una minúscula v) no tiene que devolver nada.

Si usted se está preguntando acerca de posibles usos para Void, ver Uses for the Java Void Reference Type?

+0

* "Por supuesto' pública bla void() {...} '(con una minúscula v) no tiene que devolver nada." * de hecho, ** ** imprescindible no. –

3

Vacío es el objeto "contenedor" para el tipo void. Un tipo de retorno de void no devuelve un valor de retorno, pero Void hace. No puede usar void o cualquier tipo primitivo en un genérico.

1

Como el documento dice que es clase de marcador de posición, por lo que no puede obtener una instancia, pero tiene que devolver algo desde Void != void. Void en realidad es una clasey por lo tanto tratado como cualquier otra clase/tipo que requiere una instancia o nula para ser devuelto.

3

La palabra clave correcta en Java es void, no Void (observe el uso de minúsculas al principio). Void (mayúsculas) es, según el documentation:

La clase Void es una clase de marcador de posición crearse instancias para contener una referencia a la clase de objeto que representa el vacío palabra clave Java.

Cuestiones relacionadas