Тип возврата Void - PullRequest
       8

Тип возврата Void

10 голосов
/ 10 января 2012

Если необходимо вернуть тип Void, который Javadoc описывает как

Класс, который является недостижимым классом-заполнителем для хранения ссылки на объект Class, представляющий ключевое слово Java void.

Почему по-прежнему требуется null для возврата?

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

Ответы [ 4 ]

16 голосов
/ 10 января 2012

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

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

Если вам интересно узнать о возможном использовании Void, см. Использование для Java Void Reference Type?

3 голосов
/ 10 января 2012

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

Класс Void - это нереализуемый класс-заполнитель для хранения ссылки на объект Class, представляющий ключевое слово Java void.

3 голосов
/ 10 января 2012

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

1 голос
/ 10 января 2012

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

...