Что я возвращаю, если тип возврата метода является Пустым? (Не пусто!)

Извините, я публикую это как ответ, потому что мне не хватает очков репутации.

Проблема заключается в том соотношении, которое вы определили здесь

  if (distance(lat, lng, latc, lonc) <2.0)

Как у вас это получилось 2.0?

Может быть, вам следует Log, что distance(lat, lng, latc, lonc) дает вам в результате для тех же мест, и определить в соответствии с тем соотношением, которое в вашем случае здесь 2.0.

113
задан E_net4 says Reinstate 7 March 2019 в 10:11
поделиться

5 ответов

Таким образом, что является мной предполагаемый возвратиться, если тип возврата функции должен быть Void?

Использовать return null. Void не может быть инстанцирован и просто заполнитель для Class<T> тип void.

Какой смысл Void?

Как отмечено выше, это - заполнитель. Void то, что Вы возвратите, например, при использовании отражения для рассмотрения метода с типом возврата void. (Технически, Вы возвратитесь Class<Void>.) Это имеет другое различное использование вдоль этих строк, как то, если Вы хотите параметризовать a Callable<T>.

Из-за использования дженериков в Java я закончил в необходимости реализовать эту функцию

Я сказал бы, что что-то может быть броским с Вашим API, если необходимо было реализовать метод с этой подписью. Рассмотрите тщательно, существует ли лучший способ сделать то, что Вы хотите (возможно, можно ли предоставить больше подробную информацию в другом, последующем вопросе?). Я немного подозрителен, так как это только подошло "из-за использования дженериков".

103
ответ дан Cactus 24 November 2019 в 02:44
поделиться

Нет никакого способа инстанцировать Пустоты, таким образом, единственная вещь, которую можно возвратить, является пустой.

25
ответ дан Jon Bright 24 November 2019 в 02:44
поделиться

return null путь состоит в том, чтобы пойти.

20
ответ дан Bombe 24 November 2019 в 02:44
поделиться

Если по неясным причинам НЕОБХОДИМО использовать этот тип, то действительно возврат пустого указателя, кажется, разумная опция, так как я предполагаю, что возвращаемое значение не будет использоваться так или иначе.
Компилятор вынудит Вас возвратить что-то так или иначе.
И этот класс, кажется, не имеет общедоступного конструктора, таким образом, новая Пустота () не возможна.

0
ответ дан PhiLho 24 November 2019 в 02:44
поделиться

Чтобы прояснить, почему другие предложения, которые вы дали, не работают:

Void.class и Void.TYPE указывают на то же самое объект и имеют тип Class , а не Void .

Вот почему вы не можете вернуть эти значения. new Void () будет иметь тип Void , но этот конструктор не существует. Фактически, Void не имеет общедоступных конструкторов и поэтому не может быть создан: У вас никогда не может быть никаких объектов типа Void , за исключением полиморфного null .

Надеюсь, это поможет! : -)

20
ответ дан 24 November 2019 в 02:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: