“嗨,阿米戈!我有另一個有趣的小話題要告訴你。虛空類型。”

“為什麼你需要這樣的類型?我的意思是,我理解 void:它是為了使函數和過程保持一致。我們沒有過程,但我們有返回 void(無)的函數。”

“是的,但你還記得 Ellie 最近跟你說過 Callable 接口嗎?”

“是的。”

“你還記得你需要作為類型參數傳遞什麼嗎?”

“是的,返回值的類型:”

什麼都不做的任務示例:
class EmptyJob implements Callable
{
 public String call() throws Exception
 {
  return null;
 }
}

“對。如果你想讓調用方法返回一個 int 怎麼辦?那怎麼辦?”

“現在我知道這有自動裝箱功能。我只要傳遞一個整數,一切都會像發條一樣進行:”

什麼都不做的任務示例:
class EmptyJob implements Callable
{
 public Integer call() throws Exception
 {
  return null;
 }
}

“太好了。如果方法什麼都不返回怎麼辦?”

“我明白你的意思了,那我們就用Void作為void的對應物?”

“是的。”

“將返回值設為對象然後返回 null 不是更容易嗎?”

“有時,但不總是。”

“你知道當你寫 Object 時你真的打算在這裡返回 void,但另一個程序員可能不知道這一點並且會想你為什麼要返回 null。”

“或者調用該方法的代碼將期望返回值。”

“但是當你寫 Void 時,每個人都會立即明白這是對 void 的包裝,儘管你仍然必須返回 null。”

什麼都不做的任務示例:
class EmptyJob implements Callable
{
 public Void call() throws Exception
 {
  return null;
 }
}

“嗯。你是對的。總是返回 null 的方法會引起問題。但是聲明為 Void 的方法可以做到這一點,而無需進一步解釋。”

“代碼可讀性第一,我喜歡Java!”

“太好了。很高興你喜歡。今天就到此為止。”