2012-01-10 2 views
9

Если нужно возвращать тип Void, который описывает, как JavadocНа Пустоты типа возврата

класса, который является классом uninstantiable заполнитель провести ссылку на объект класса, представляющего пустоту ключевое слово Java.

Зачем нужны следующие null?

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

Потому что 'Void' не является ключевым словом, а« объектом ». – BalusC

+0

нижний регистр 'Void' –

+0

возможное дублирование http://stackoverflow.com/questions/676663/what-do-retret-if-the-return-type-of-a-method-is-void-not-void – Anthea

ответ

14

Void класс, как и любой другой, поэтому функция, возвращающая Void должен возвращать ссылку (например, null). Фактически, Void является final и не может быть восстановлен, что означает, что null - единственная вещь, возвращаемая функцией Void.

Конечно, public void blah() {...} (с нижним регистром v) ничего не должен возвращать.

Если вы задаетесь вопросом о возможном использовании для Void см Uses for the Java Void Reference Type?

+0

* «Конечно,« public void blah() {...} »(с нижним регистром v) не должен ничего возвращать». * Действительно, ** должно ** не быть. –

3

Пустота является объектом «обертка» для void типа. Тип возврата void не возвращает возвращаемое значение, но Void делает. Вы не можете использовать void или любой примитивный тип в общем виде.

1

Как сказано в документе, это нежизнеспособный класс заполнителей, поэтому вы не можете получить экземпляр, но вам нужно что-то вернуть с Void != void. Void фактически является классом и таким образом обрабатывается, как и любой другой класс/тип, для которого требуется вернуть экземпляр или null.

3

Правильное ключевое слово в Java - void, а не Void (обратите внимание на использование строчной буквы в начале). Void (верхний регистр) является, в соответствии с documentation:

Классом Пустоты является классом uninstantiable заполнителя, чтобы содержать ссылку на объект класса, представляющего пустоту ключевого слова Java.

Смежные вопросы