“嗨,阿米戈!我为你准备了另一个有趣的小话题。虚空类型。”

“为什么你需要这样的类型?我的意思是,我理解 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!”

“太好了。很高兴你喜欢。今天就到此为止。”