— Привіт, Аміго! І знову маленька та цікава тема. Тип 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!
— Чудово. Рада що тобі сподобалося. На сьогодні закінчимо.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ