"Здравей, Амиго! Имам още една малка и интересна тема за теб. Типът Празнота."

„И защо ви е нужен такъв тип? Искам да кажа, разбирам void: това е за привеждане на функции и proceduresи в съответствие. Ние нямаме proceduresи, но имаме функции, които връщат void (нищо).“

„Да, но помниш ли, че Ели наскоро ти каза за интерфейса Callable?“

— Да.

„И помните ли също Howво трябва да подадете като аргумент за тип?“

„Да, типът на върнатата стойност:“

Пример за задача, която не прави нищо:
class EmptyJob implements Callable
{
 public String call() throws Exception
 {
  return null;
 }
}

"Точно. И Howво, ако искате методът за извикване да върне int? Какво тогава?"

„Сега знам, че има автоматичен бокс за това. Просто бих предал цяло число и всичко ще върви като по часовник:“

Пример за задача, която не прави нищо:
class EmptyJob implements Callable
{
 public Integer call() throws Exception
 {
  return null;
 }
}

„Отлично. И Howво ще стане, ако методът не върне нищо?“

„Разбрах мисълта ти. Тогава използваме Void като противоположност на void?“

— Да.

„Не би ли било по-лесно просто да направите върнатата стойност обект и след това да върнете нула?“

— Понякога, но не винаги.

„Знаете, че наистина искахте да върнете void тук, когато написахте Object, но друг програмист може да не знае това и ще помисли защо връщате null.“

„Или codeът, извикващ метода, ще очаква върната стойност.“

„Но когато напишете Void, всички веднага разбират, че това е обвивка за void, въпреки че все още трябва да върнете null.“

Пример за задача, която не прави нищо:
class EmptyJob implements Callable
{
 public Void call() throws Exception
 {
  return null;
 }
}

"Хм. Прав си. Метод, който винаги връща нула, повдига въпроси. Но методът, деклариран като Void, може да направи това, без да изисква допълнително обяснение."

„Четимостта на codeа е на първо място. Харесвам Java!“

"Страхотно. Радвам се, че ви харесва. Свършихме за днес."