— Привіт, Аміго! І знову маленька та цікава тема. Тип Void.

— А навіщо може знадобитися такий тип? Ну, з void-то зрозуміло. Щоб привести до спільного знаменника функції та процедури. Тепер у нас немає процедур, проте є функції, які повертають void (нічого).

— Ага. А ти пам'ятаєш, недавно Еллі розповідала тобі про інтерфейс-шаблон Callable?

— Ага.

— А що туди потрібно передати як тип-параметр теж пам'ятаєш?

— Так, тип результату:

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

— Ага. А якщо тобі потрібно, щоб метод call повертав значення int? Як тоді?

— Тепер я знаю, що для цього є autoboxing. Я просто передам Integer, і все працюватиме як годинник:

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

— Чудово. А якщо метод нічого не повинен повертати?

— Я зрозумів твою думку. Тоді ми використовуємо Void як аналог void?

— Ага.

— А не простіше зробити просто Object та повертати null.

— Іноді, але не завжди.

Ти знаєш, що там мав на увазі void, а ти написав Object, але інший програміст може цього і не знати і думатиме, а чому це ти повертаєш null.

Або код, який викликає цей метод, буде очікувати значення як результат.

А коли написано Void то всім відразу зрозуміло, що це – обгортка над void, хоча повертати null все ж таки доведеться.

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

— Гм. Справді, метод, який завжди повертає null, вселяє деякі сумніви. А метод, який оголошено Void, це може робити без зайвих пояснень.

Читабельність коду — насамперед. Мені подобається Java!

— Чудово. Рада що тобі сподобалося. На сьогодні закінчимо.