"สวัสดี Amigo! ฉันมีหัวข้อเล็กๆ ที่น่าสนใจสำหรับคุณ ประเภท The Void"

"และทำไมคุณถึงต้องการประเภทดังกล่าว ฉันหมายถึง ฉันเข้าใจ void คือการนำฟังก์ชันและโพรซีเดอร์มาปรับใช้ เราไม่มีโพรซีเดอร์ แต่เรามีฟังก์ชันที่คืนค่า void (ไม่มีอะไร)"

“ใช่ แต่คุณจำได้ไหมว่า Ellie เพิ่งบอกคุณเกี่ยวกับอินเทอร์เฟซที่โทรได้”

"ใช่."

"และคุณจำสิ่งที่ต้องส่งเป็นอาร์กิวเมนต์ประเภทได้หรือไม่"

"ใช่ ประเภทของค่าส่งคืน:"

ตัวอย่างของงานที่ไม่ทำอะไรเลย:
class EmptyJob implements Callable
{
 public String call() throws Exception
 {
  return null;
 }
}

"ใช่ แล้วถ้าคุณต้องการให้เมธอดการโทรส่งคืน int ล่ะ จะทำอย่างไร"

"ตอนนี้ฉันรู้แล้วว่ามีการใส่กล่องอัตโนมัติสำหรับสิ่งนี้ ฉันจะส่งจำนวนเต็มและทุกอย่างจะดำเนินไปเหมือนเครื่องจักร:"

ตัวอย่างของงานที่ไม่ทำอะไรเลย:
class EmptyJob implements Callable
{
 public Integer call() throws Exception
 {
  return null;
 }
}

"เยี่ยมมาก แล้วถ้าเมธอดไม่คืนค่าอะไรเลยล่ะ"

"ฉันเข้าใจประเด็นของคุณ ถ้าอย่างนั้นเราจะใช้ Void เป็นโมฆะแทนหรือไม่"

"ใช่."

"การทำให้ค่าที่ส่งคืนเป็น Object แล้วคืนค่า null จะง่ายกว่าไหม"

"บางครั้ง แต่ไม่เสมอไป"

"คุณรู้ว่าคุณตั้งใจจะคืนค่า void ที่นี่จริงๆ เมื่อคุณเขียน Object แต่โปรแกรมเมอร์คนอื่นอาจไม่รู้เรื่องนี้และจะคิดว่าทำไมคุณถึงคืนค่า null"

"หรือรหัสเรียกเมธอดจะคาดหวังผลตอบแทน"

"แต่เมื่อคุณเขียน Void ทุกคนจะเข้าใจทันทีว่านี่คือการห่อหุ้ม void แม้ว่าคุณจะยังคงต้องคืนค่า null ก็ตาม"

ตัวอย่างของงานที่ไม่ทำอะไรเลย:
class EmptyJob implements Callable
{
 public Void call() throws Exception
 {
  return null;
 }
}

"อืม คุณพูดถูก เมธอดที่คืนค่า null เสมอจะทำให้เกิดคำถาม แต่เมธอดที่ประกาศเป็น Void สามารถทำได้โดยไม่ต้องมีคำอธิบายเพิ่มเติม"

"การอ่านโค้ดต้องมาก่อน ฉันชอบ Java!"

"เยี่ยม ฉันดีใจที่คุณชอบ เราจบกันสำหรับวันนี้"